返回值优化 问答列表

为什么 C++ 中的强制 RVO 需要公共析构函数?

作者:Fedor 提问时间:8/5/2021

请考虑下面的简单示例,其中函数返回一个带有私有析构函数的类对象,并且必须进行强制返回值优化 (RVO):barA class A { ~A() = default; }; A bar() { ret...

MSVC:为什么调用静态函数比调用实例方法生成更多的汇编代码?

作者:Laurent 提问时间:3/14/2023

在反汇编应用程序时,我注意到与实例方法相比,在调用静态方法时,MSVC 生成的程序集操作码更多。即使两个函数相同(因此实例方法不使用 )。this 代码示例: struct matrix4 { ...

析构函数使用返回值优化调用两次

作者:roi_saumon 提问时间:4/28/2023

为了理解复制省略,我写了一个小例子 #include "iostream" using namespace std; struct Foo { Foo() { cout << "constru...

在 C++14 中关闭 RVO/NRVO 时,如何返回对象?

作者:Isuxiz Slidder 提问时间:5/21/2023

我正在学习移动语义,所以我写了一个小程序,如下所示: #include <iostream> using namespace std; int one_int = 123; class A {...

获取 RVO 优化静态的地址

作者:glades 提问时间:5/31/2023

在下面的代码中,我尝试将一个单例实例注册到一个保留所有单例的全局数组中(在生产代码中,我可以根据模板参数实例化不同的单例,所以不用担心这个悖论:))。我想知道的是,我是否可以以某种方式获得 lambd...

按值返回的临时shared_ptr的计数器是否递增?

作者:Mix Kira 提问时间:6/7/2023

我试图了解 RVO 在这种特殊情况下如何协同工作。shared_ptr 假设我有这个示例代码: class A { public: void action() {} }; class Cont...

什么是复制省略和返回值优化?

作者:Luchian Grigore 提问时间:10/18/2012

什么是复制省略?什么是(命名的)返回值优化?它们意味着什么? 它们会在什么情况下发生?什么是限制? 如果你被引用到这个问题,你可能正在寻找介绍。 有关技术概述,请参阅标准参考。 在此处查看常见案例...

为什么删除复制或移动构造函数时,命名返回值优化的 C++ 编译失败?

作者:Nathan Doromal 提问时间:7/20/2023

我在 C++ 上的 C++ 上的 gcc 13.1 上尝试了以下操作11/17/20/23,但在删除移动或复制构造函数时无法编译。 如果未删除这些构造函数,则命名返回值优化将起作用,并且不会执行复制...

C++ 在优化后按值返回类对象的内存位置

作者:codepoet 提问时间:7/22/2023

假设有一个用户定义。一些帖子建议 C++ 类对象“永远不会”在堆上分配,除非分配了 .但!另一方面,有些帖子建议,按值从函数返回本地外观的类对象不一定复制任何数据。所以!这种对象的数据首先存储在哪里?...

C++14 中的自定义静态转换函数模板

作者:spdie 提问时间:8/1/2023

我已经为静态转换编写了这样一个模板函数作为练习: template<typename cT, typename T> inline constexpr cT sCast(T carg) { ret...


共15条 当前第1页