2080得票11回答
移动语义是什么?

我刚刚听完了关于C++11的软件工程广播采访Scott Meyers。其中大部分新特性对我来说都很有意义,只有一个例外。我还是不太明白移动语义...它到底是什么?

1163得票7回答
push_back与emplace_back的区别

我对于push_back和emplace_back的区别有点困惑。void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val);...

1102得票9回答
std::move()是什么,以及何时应该使用它?

1. 这是什么? 2. 它有什么作用? 3. 什么时候应该使用它? 感谢提供好的链接。

519得票6回答
在返回语句中是否需要使用std::move,并且是否应该返回右值引用?

我正在努力理解C++11中的rvalue引用和移动语义。 这些示例有什么区别,哪个示例不会进行向量复制? 第一个示例 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,...

490得票7回答
为什么可以在不使用std::move的情况下返回std::unique_ptr?

unique_ptr<T> 不允许复制构造,而是支持移动语义。然而,我可以从函数中返回一个 unique_ptr<T> 并将返回值赋给一个变量。 #include <iostream> #include <memory> using name...

268得票3回答
“rvalue reference for *this” 提案是什么意思?

在clang的C++11状态页面上看到了一个名为“rvalue reference for *this”的提案。 我已经阅读了很多关于rvalue引用的内容,并且理解了它们,但我不认为我了解这个。我在网上也找不到很多使用这些术语的资源。 页面上有一个指向提案论文的链接:N2439(将移动语...

222得票4回答
C++11 返回值优化还是移动?

我不明白什么时候应该使用std::move,什么时候应该让编译器进行优化... 例如: using SerialBuffer = vector< unsigned char >; // let compiler optimize it SerialBuffer read( si...

217得票8回答
为什么我要使用std::move移动一个std::shared_ptr?

我一直在查阅Clang源代码,我找到了这个片段: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Val...

213得票2回答
现代C++能够免费提高性能吗?

有时候人们声称,即使只是编译 C++98 代码,C++11/14 也能给你带来性能提升。这种说法通常是基于移动语义的,因为在某些情况下,右值构造函数会被自动生成或成为 STL 的一部分。现在我想知道这些情况之前是否已经被 RVO 或类似的编译器优化处理过了。 那么我的问题是,如果您能给我一个...

196得票2回答
无法移动借用内容 / 无法移动共享引用后面

我不理解错误信息cannot move out of borrowed content。我曾多次收到这个错误并成功解决,但我从未明白其中的原因。例如:for line in self.xslg_file.iter() { self.buffer.clear(); for cu...