是否有必要在 return 语句中使用 std::move,是否应该返回右值引用?
作者:Tarantula 提问时间:2/14/2011
我正在尝试理解右值引用并移动 C++11 的语义。 这些示例之间有什么区别,其中哪些示例将不执行向量复制? 第一个例子 std::vector<int> return_vector(void) {...
rvalue 问答列表
作者:Tarantula 提问时间:2/14/2011
我正在尝试理解右值引用并移动 C++11 的语义。 这些示例之间有什么区别,其中哪些示例将不执行向量复制? 第一个例子 std::vector<int> return_vector(void) {...
作者:Elucidase 提问时间:9/21/2023
这个问题在这里已经有答案了: 类型未推断为 r 值参考:为什么不呢? (2 个答案) 2个月前关闭。 首先,这个问题已经被其他人问过了,看到这个和这个,但(我认为)他们都没有提供令人满意的答案。 ...
作者:Oliver Hawker 提问时间:8/30/2023
我正在编写一个对象分配器,我想按以下方式调用它: T result = factoryObject.construct(argA, argB, argC); 我目前有这个设计,它有效.........
作者:myoldgrandpa 提问时间:8/28/2023
我能理解什么是. 但是什么意思?is_constructible_v<std::string, std::string&&>is_constructible_v<std::string&&, std:...
作者:hhu_clj 提问时间:8/23/2023
由于在 C++ 11 之前不支持右值引用,因此没有移动构造函数。参数使它甚至对临时使用复制构造函数,这与通过按值参数调用复制构造函数相同吗?允许接收正确的值,那么为什么不按值传递呢?const T&s...
作者:cppBeginner 提问时间:8/10/2023
我想创建一个正确识别其参数类型的函数。 template<class T> void test(T&& t){ if constexpr(std::is_same_v<T,int>){ std:...
作者:metamorphosis 提问时间:4/21/2023
例如: std::vector<int> i; i = std::vector{5, 4, 3, 2, 1} 在上述情况下,编译器通常会将第二行优化为移动操作而不是复制操作,尽管缺少 std::...
作者:glades 提问时间:2/9/2023
我有一个类对象,它吞噬一个字符串并将其推入构造时的成员中(为了这个论点,它可以是任何旧成员函数)。entity 现在我至少可以通过两种方式做到这一点:我可能会接受一个 std::string 副本并...
作者:chiasmos 提问时间:1/26/2023
我正在编写一个模板库,该模板库应该镜像 std::map 的接口。我在实现以下 insert() 重载时偶然发现了一个问题。 iterator insert( const value_type& v...
作者:Vero 提问时间:11/13/2022
我正在 a 中构造一个共享指针,并将其作为 lambda 的捕获。function_1 我认为这是一个问题,你能确认这是否安全还是我是对的,我不应该这样做? #include <memory> #...