function object研究之十四 unwrap

来源:互联网 发布:coc野蛮人升级数据 编辑:程序博客网 时间:2024/06/06 03:13
template<class F> struct unwrapper{    static inline F & unwrap( F & f, long )    {        return f;    }    template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )    {        return rf.get();    }    template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )    {        return _mfi::dm<R, T>( pm );    }};

这个模板里面的第二个unwrap静态成员函数可以将reference_wrapper<T> 里面的引用拿出来。

第三个解释起来有点笔墨,先放一放,以后这里补上。

其他情况下使用第一个,直接返回f参数。

原创粉丝点击