复制省略和简单可复制类型
作者:Antoine Morrier 提问时间:5/4/2021
从标准的 6.7.7(临时对象)中,我们可以看到: 当类类型 X 的对象传递给函数或从函数返回时,如果 X 至少有一个合格的复制或移动构造函数 ([special]),则每个此类构造函数都是微不足道...
复制省略 问答列表
作者:Antoine Morrier 提问时间:5/4/2021
从标准的 6.7.7(临时对象)中,我们可以看到: 当类类型 X 的对象传递给函数或从函数返回时,如果 X 至少有一个合格的复制或移动构造函数 ([special]),则每个此类构造函数都是微不足道...
作者:Guillaume BERLAND 提问时间:1/15/2023
我正在学习可变参数模板和折叠表达式。 我想避免使用动态分配和指针。 为了说明我的问题,我创建了继承自 I_Foo 的 Foo(删除复制和移动构造函数)类。 class I_Foo { public...
作者:Andrés 提问时间:5/24/2023
修改复制构造函数的“explicit”关键字可能会导致问题。 作为函数参数传递的对象特别容易受到这些问题的影响。 这是我的代码: #include <iostream> #include <str...
作者:Lukas Lang 提问时间:6/9/2023
序言 这是对我尝试使用代码执行的操作的描述,请跳到下一节以查看实际问题。 我想在嵌入式系统中使用协程,因为在嵌入式系统中,我负担不起太多的动态分配。因此,我正在尝试以下操作:我有不可复制、不可移动...
作者:Ya Ihniy 提问时间:6/18/2023
我做了一个类的静态函数,并将构造函数设为私有。现在我想使用这个函数。Clang++ 说“构造函数是私有的”,而 g++ 可以正常编译。 我不知道任何标准中是否有任何规则可能会以任何方式影响这一点。任...
作者:codepoet 提问时间:7/22/2023
假设有一个用户定义。一些帖子建议 C++ 类对象“永远不会”在堆上分配,除非分配了 .但!另一方面,有些帖子建议,按值从函数返回本地外观的类对象不一定复制任何数据。所以!这种对象的数据首先存储在哪里?...
作者:EL IAS 提问时间:9/13/2023
这个问题在这里已经有答案了: 为什么返回参数时不允许 RVO? (3 个答案) 2个月前关闭。 在下面的代码片段中,我的函数尝试将其“by-value”参数作为“by-value”返回值返回。我看了...
作者:Vinod 提问时间:9/19/2023
参考:复制省略 仅当已知正在初始化的对象不是潜在重叠的子对象时,这才适用: struct C { /* ... */ }; C f(); struct D; D g(); struct D...
作者:Tao 提问时间:10/9/2023
我在下面有非常简单的代码来理解 C++ 对象的创建和删除。输出并不是我所期望的。为什么? class Box{ public: static int count; Box(double x,...
作者:chakmeshma 提问时间:10/21/2023
假设在编译时禁用了复制省略,那么以下操作是否是避免不必要的复制(模拟复制省略)的有效做法? Container getContainer() { Container c; return c; ...