问答列表

为什么称为复制构造函数而不是移动构造函数?

作者:fizzbuzz 提问时间:6/29/2020

我有以下代码: #include <bits/stdc++.h> using namespace std; class A { public: A(const A& a) noexcept {...

我的 Copy and Move 构造函数和赋值运算符出现问题

作者:DvB 提问时间:2/10/2022

我想用 C++ 构建自己的完整类。我是这样开始的:Vector #include <iostream> #include <initializer_list> #define Print(x)(s...

C++ 隐式声明的移动赋值运算符调用基类的隐式声明的复制赋值运算符

作者:SoulfreezerXP 提问时间:3/11/2023

一个简单的问题,但我找不到证明这一点的规则集 下面的代码示例的行为是正确的。这里似乎只有 strDerived 是 从 b 移动,但 strBase 被复制了?将隐式声明的移动赋值运算符 of Der...

编译器可以省略特定数据成员的副本吗?

作者:TwistedBlizzard 提问时间:8/30/2023

获取此代码: struct Bar { //has non-default copy-constructor Bar() = default; Bar(const Bar&) {} }; st...

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

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

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

为什么 bind_front/bind_back/not_fn/bind 需要 Args...是可移动的?

作者:康桓瑋 提问时间:9/24/2023

我注意到产生完美转发调用包装器的 // 都要求传入的函数参数和参数参数必须是可移动构造的。std::bind_frontstd::bind_backstd::not_fn 以 std::bind_f...

为什么 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=" << ...


共352条 当前第4页