相关疑难解决方法(0)

C++ 0x中的完美转发是否会使reference_wrapper弃用?

像往常一样,代码优先:

#include <functional>

using namespace std;
using namespace std::tr1;

void f(int& r) { r++; }

template<class F, class P> void g1(F f, P t) { f(t); }
template<class F, class P> void g2(F f, P&& t) { f(forward<P>(t)); }

int main()
{
    int i = 0;

    g1(f, ref(i)); // old way, ugly way
    g2(f, i); // new way, elegant way
}
Run Code Online (Sandbox Code Playgroud)

在C++ 98中,我们没有一种通过模板函数来完善前向参数的好方法.所以C++大师发明了ref和cref来实现这个目标.

现在我们已经有了r值参考和完美转发,是否应该弃用ref和cref等?

c++ c++11

7
推荐指数
1
解决办法
939
查看次数

标签 统计

c++ ×1

c++11 ×1