移动语义 问答列表

为什么使用 Move 构造函数而不是复制?

作者:Lion's_Den 提问时间:4/2/2021

为什么调用移动构造函数而不是复制构造函数?当我删除移动构造函数时,则称为复制构造函数。 使用 : -fno-elide-constructors 以避免复制省略 #include <iostrea...

为什么 C++ 中的移动语义在函数签名 [duplicate] 中有右值引用

作者:D.J. Elkind 提问时间:9/12/2023

这个问题在这里已经有答案了: T&&(双与号)在C++11中是什么意思? (4 个答案) 什么是移动语义? (11 个回答) 2个月前关闭。 请考虑以下移动分配运算符: class MyClass...

std::move 和 std::shared_ptr 参数按值传递

作者:cppdev 提问时间:9/14/2023

请考虑以下代码: #include <iostream> #include <memory> class Test { public: Test(int t) : t(t) {} int...

我什么时候想使用 auto&amp;&amp; 而不是 decltype(auto) 或 -&gt;decltype(return-expr) 作为函数定义的返回类型?

作者:Enlico 提问时间:11/6/2023

取三个函数返回 prvalue、lvalue、xvalue: int f(); int& f(int); int&& f(int, int); 并通过返回的函数调用它们decltype(auto...

为什么 std::move 可以移动堆栈数据对象?

作者:CPW 提问时间:11/7/2023

我对以下关于移动堆栈对象的代码感到困惑: int *pOuter = nullptr; { int j; std::cout << "top of the inner stack=" << ...

为什么 std::move 被命名为 std::move?

作者:Howard Hinnant 提问时间:1/26/2014

该函数根本没有真正移动任何东西。 它只是对右值的强制转换。 为什么要这样做? 这不是误导吗?std::move(x)...

在 C++03 编译器上使用移动仿真将 boost::unique_lock 作为返回值移出函数是否安全?

作者:The amateur programmer 提问时间:10/15/2023

我有一个可移动但不可复制的类,可用于同步对某些共享资源的访问: class wrapper_with_lock{ private: BOOST_MOVABLE_BUT_NOT_COPYABLE(...

什么是移动语义?

作者:dicroce 提问时间:6/24/2010

我刚刚听完了软件工程电台播客对Scott Meyers关于C++11的采访。大多数新功能对我来说都很有意义,除了一个。我仍然没有得到移动语义......它到底是什么?...

使用“{}”构造 std::tuple 时,Clang-Tidy 关于 std::move 是否正确?

作者:Sergey Kolesnik 提问时间:9/29/2023

我正在用 C++ 实现一个函数,特别是一个可调用的类对象,旨在返回一个包含对象和结果的容器。经过一些调整(见下文),我有了成员函数的定义:std::tuple template <typename ...

为什么将 std::move 和 std::list 与自定义视图类型一起使用会导致无限递归?

作者:neuroevolutus 提问时间:11/4/2023

我正在阅读 Rainer Grimm 的书 C++20:获取有关定义自己的视图类型的详细信息 §5.1.7.2,当时我决定修改提供的代码示例,看看它是否适用于 .代码最终如下所示:std::list ...


共32条 当前第2页