Tag: 右值引用

具有指定模板参数的C ++ 11 make_pair不能编译

我正在玩g ++ 4.7(以后的快照之一),启用了-std = c ++ 11。 我试图编译一些我现有的代码库和一个失败的混淆我的案例。 如果有人能解释发生了什么,我将不胜感激。 这是代码 #include <utility> #include <iostream> #include <vector> #include <string> int main ( ) { std::string s = "abc"; // 1 ok std::pair < std::string, int > a = std::make_pair ( s, 7 ); // 2 error on the next line std::pair < std::string, int > b […]

在lambda中移动捕获

如何通过移动(也称为右值引用)在C ++ 11 lambda中捕获? 我想写这样的东西: std::unique_ptr<int> myPointer(new int); std::function<void(void)> = [std::move(myPointer)]{ (*myPointer) = 4; };

由右值引用返回更有效?

例如: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1, 1)); }