我刚刚听完了Scott Meyers关于C++ 0x的软件工程电台播客采访.大多数新功能对我来说都很有意义,我现在对C++ 0x感到兴奋,除了一个.我仍然没有得到移动语义 ......它们究竟是什么?
一个人可能有一个函数void setData(std::string arg); ,并通过setData(std::move(data));调用move构造函数调用它,他也会这样做void setData(std::string && arg);(除了他将被迫将数据移入其中).如果对简单情况应该使用move,那么编译器决定做什么呢?
所以我的问题是:&&不仅要用于编译器,还要用于通用代码(例如为其他开发人员创建的API成员)?