相关疑难解决方法(0)

什么是移动语义?

我刚刚听完了Scott Meyers关于C++ 0x的软件工程电台播客采访.大多数新功能对我来说都很有意义,我现在对C++ 0x感到兴奋,除了一个.我仍然没有得到移动语义 ......它们究竟是什么?

c++ c++-faq move-semantics c++11

1614
推荐指数
11
解决办法
39万
查看次数

什么是std :: move(),什么时候应该使用?

  1. 它是什么?
  2. 它有什么作用?
  3. 什么时候应该使用?

赞赏良好的链接.

c++ c++-faq move-semantics c++11 stdmove

581
推荐指数
6
解决办法
24万
查看次数

带模板类的通用引用

例:

template <typename T>
class Bar
{
public:
    void foo(T&& arg)
    {
        std::forward<T>(arg);
    }
};

Bar<int> bar;    

bar.foo(10); // works

int a{ 10 };
bar.foo(a); // error C2664: cannot convert argument 1 from 'int' to 'int &&'
Run Code Online (Sandbox Code Playgroud)

通用引用似乎只适用于模板化函数,只适用于类型推导,对吧?所以在课堂上使用它没有意义吗?std::forward在我的案例中使用是否有意义?

c++ templates universal-reference

4
推荐指数
2
解决办法
1098
查看次数