10得票2回答
移动语义和完美转发的区别

我已经从这个问题中了解了移动语义是什么: What are move semantics? 但是我还不知道与移动语义相关的完美转发是什么。 有人能用简单的英语和一个简单的例子解释一下什么是完美转发吗?

9得票1回答
在返回语句中使用std::move以提高效率,这样做是否可行?

我无法确定以下代码中的std::move是否有任何好处或者完全错误? Object类定义了移动和拷贝构造函数。 首先:使用移动构造函数: template<typename T> template <typename F> const Object<T&gt...

34得票1回答
Lvalue到rvalue引用绑定

编译器一直在抱怨我试图将一个左值绑定到右值引用上,但我无法看出问题所在。 我是C ++ 11、移动语义等方面的新手,请耐心等待。 我有这个函数: template <typename Key, typename Value, typename HashFunction, typena...

37得票3回答
我可以把std::map的内容移动分配到另一个std::map中吗?

是否可以使用移动语义将临时 std::map temp 的内容插入另一个 std::map m 中,以便重用临时中的值而不是复制它们? 假设有以下内容:std::map<int, Data> temp; std::map<int, Data> m; 将值从temp复制到...

24得票1回答
我应该删除智能指针的移动构造函数和移动赋值运算符吗?

我正在实现一个简单的智能指针,基本上它会跟踪它处理的指针的引用计数。 我知道我可以实现移动语义,但我认为这没有意义,因为复制智能指针非常便宜。特别是考虑到它会引入产生令人讨厌的错误的机会。 这是我的C++11代码(省略了一些不重要的代码)。也欢迎一般性的评论。 #ifndef SMART...

20得票3回答
使用const_cast和std::move从非引用类型中移除const属性

我有一个外部库,无法修改。该库声明了一个模板函数,由于某些原因返回非引用的const对象: template<class C> const C foo(); 我有另一个无法修改的外部库。该库声明了一个不可复制的类,并仅从非const对象拥有移动构造函数: struct ba...

16得票1回答
在一个完整的表达式中进行两次移动是否被允许?

假设有一个函数,具有以下原型:template<typename T> std::unique_ptr<T> process_object(std::unique_ptr<T> ptr); 该函数可能返回(移动版本的)传递给它的对象,或完全不同的对象...

36得票5回答
移动语义 == 自定义交换函数过时?

最近,许多 问题 涌现 关于如何提供自己的swap函数。在C++11中,std::swap将使用std::move和移动语义尽可能快地交换给定的值。当然,这仅在您提供了移动构造函数和移动赋值运算符(或使用按值传递的运算符)时才有效。 那么,考虑到这一点,是否真的有必要在C++11中编写自己的...

24得票2回答
在C++11中重复使用std::move对boost::asio套接字对象的影响

我正在探索使用boost::asio与C++11特性。特别是,我正在关注一个名为“async_tcp_echo_server.cpp”的示例,它位于此处(代码也显示在我的问题末尾): http://www.boost.org/doc/libs/1_54_0/doc/html/boost_as...

7得票3回答
C++中允许从类成员移动数据的最佳方法是什么(使用std::move语法)?

假设我有一个主要负责填充数据容器的类,我想把数据移到这个类之外。所以我现在有: class cCreator { public: void generate() { ///generate the content of data_ and populate it...