rvalue 问答列表

是否有必要在 return 语句中使用 std::move,是否应该返回右值引用?

作者: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); 我目前有这个设计,它有效.........

is_constructible_v&lt;std::string&amp;&amp;, std::string&amp;&amp;&gt;是什么意思?

作者:myoldgrandpa 提问时间:8/28/2023

我能理解什么是. 但是什么意思?is_constructible_v<std::string, std::string&&>is_constructible_v<std::string&&, std:...

在 c++11 之前的 vector.push_back(const &amp; T val) 中按值调用和按右值调用有什么区别

作者:hhu_clj 提问时间:8/23/2023

由于在 C++ 11 之前不支持右值引用,因此没有移动构造函数。参数使它甚至对临时使用复制构造函数,这与通过按值参数调用复制构造函数相同吗?允许接收正确的值,那么为什么不按值传递呢?const T&s...

可以接收任何 T、T&amp; 和 T&amp;&amp; 作为输入的函数,并且还可以识别其类型?

作者:cppBeginner 提问时间:8/10/2023

我想创建一个正确识别其参数类型的函数。 template<class T> void test(T&& t){ if constexpr(std::is_same_v<T,int>){ std:...

有没有办法防止 C++ 编译器将临时右值的副本优化为移动操作?

作者:metamorphosis 提问时间:4/21/2023

例如: std::vector<int> i; i = std::vector{5, 4, 3, 2, 1} 在上述情况下,编译器通常会将第二行优化为移动操作而不是复制操作,尽管缺少 std::...

将参数移动到数据成员:通过复制或 rvalue-ref 获取参数?

作者:glades 提问时间:2/9/2023

我有一个类对象,它吞噬一个字符串并将其推入构造时的成员中(为了这个论点,它可以是任何旧成员函数)。entity 现在我至少可以通过两种方式做到这一点:我可能会接受一个 std::string 副本并...

std::map 如何解决常量左值引用和右值引用之间的 insert() 重载

作者:chiasmos 提问时间:1/26/2023

我正在编写一个模板库,该模板库应该镜像 std::map 的接口。我在实现以下 insert() 重载时偶然发现了一个问题。 iterator insert( const value_type& v...

从函数返回共享指针与在 Lambda 中捕获共享指针

作者:Vero 提问时间:11/13/2022

我正在 a 中构造一个共享指针,并将其作为 lambda 的捕获。function_1 我认为这是一个问题,你能确认这是否安全还是我是对的,我不应该这样做? #include <memory> #...


共24条 当前第2页