C++ 返回值和移动规则异常
作者:tinkerbeast 提问时间:5/30/2020
当我们从 C++ 函数返回一个值时,就会发生复制初始化。例如: std::string hello() { std::string x = "Hello world"; return x; //...
struct 问答列表
作者:tinkerbeast 提问时间:5/30/2020
当我们从 C++ 函数返回一个值时,就会发生复制初始化。例如: std::string hello() { std::string x = "Hello world"; return x; //...
作者:Leon 提问时间:4/18/2023
我已经用 C++20 编写了一个无锁和线程安全的环队列,到目前为止它有效。唯一不完美的是它必须有两个方法,一个接受对左值的常量引用作为参数,另一个接受对右值的引用,以便将右值移动到队列中而不是再次构造...
作者:Louis 提问时间:6/24/2023
[首先:Windows10 上的 Vs2019,仅支持 C++11] 我对模板复制分配功能感到困惑,例如:在此处输入图像描述 我发现规范化版本不起作用,为什么它不等于复制赋值功能?模板函数不是会像...
作者:Александр Кушниренко 提问时间:5/13/2019
我不明白为什么 c1 = {1, 2, 3, 4} 和 c2 = {5, 6, 7, 8} 工作正常,没有声明的构造函数,并且编译器生成的编译器不适合。 我试图通过显式转换来理解:(C&) { 1,...
作者:Aniket Saha 提问时间:11/24/2019
下面是我试图弄清楚的代码。在我调用以下构造函数或函数之后,函数实际上在做什么? 我的问题是为什么我会得到这种输出,更具体地说,为什么“复制构造函数调用”被打印了 2 次。请解释这段代码的背景。 ...
作者:Krishna Kanth Yenumula 提问时间:5/23/2021
代码是: #include <iostream> using namespace std; class Point { int x, y; public: Point(const Point...
作者:Sergey 提问时间:8/1/2017
我有一个包含许多数据成员的类,其中一些是常量。所有数据成员都有适当的复制构造函数,所以我想默认我的类的复制构造函数:A class A { public: A() : a(1) {} A(con...
作者:code707 提问时间:7/18/2018
以下是 cpppreference 的定义: [https://en.cppreference.com/w/cpp/named_req/CopyConstructible][1] 要求:类型 T ...
作者:kymkcay 提问时间:4/25/2021
上下文 我有两个类(简化为相关声明): #include <string> #include <fstream> class Lexer { std::ifstream file_; Lex...
作者:abura 提问时间:6/11/2020
为了避免代码重复,我想将移动构造函数和移动赋值运算符分别委托给适当的复制构造函数和赋值运算符: struct A { A() {...} //default constructor A(co...