问题标签 [const-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何访问 const 引用参数的值?
如果我有一个与此类似的功能:
如果我需要获取 old_value 和 new_value 的值并在可变变量中使用这些值怎么办?
我不能用 * 指针取消引用。我该如何解决这个问题?
c++ - 如何从通过非常量输出参数提供所需数据的函数中获取替代值,以将引用到常量变量分配给它?
注释代码有效,但它不是参考,因此它具有更多的计算成本。
未注释的代码是我尝试使用三元运算符和 lambda 表达式的最大程度,但直到现在它还没有成功,给出了错误:
需要注意的重要事项:
- 我传递
this
了 lambda 捕获,只是为了访问该GetInnerItems
方法 - 该
GetInnerItems
方法通过其类型的第一个参数提供内部项目,该参数CArray<CItem*>&
是非常量且永远不会是 const。
因此,在我看来,问题在于GetInnerItems
工作方式,与三元运算符无关。假设我不能改变它的签名来返回 a CArray
,因为CArray
是从CObject
which 派生的声明:
所以,问题是:
如何将替代值分配给保持 const 正确性的引用到 const变量?
Items
如果您使用 a 成功回答了第一个问题
const_cast
,那么您现在可以在没有它的情况下给出解决方案吗?
c++ - C++, const reference is actually faster than move?
After testing this code:
I get that using const-reference is actually ~15s faster than using move semantics, why is that? I thought that move semantics were faster, else, why would they add them? What did I get wrong about move semantics? thanks
c++ - 将返回值存储为 const 引用与值
假设一个函数有签名
并且它按值返回一个新字符串。现在给出以下代码:
从 C++11 编译器的角度来看,我是否正确理解 (a) 和 (b) 是相同的?如果是这样,在风格的选择上是否有一个粗略的共识?
c++ - 使用具有默认值的参考参数是好的做法吗?
我有以下代码:
带有临时参数和不带参数的调用有多糟糕(如果有的话)?
据我所知,这只是因为 const 引用延长了临时的寿命直到方法结束http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for -最重要的常量/
尝试在没有const
next tos
参数的情况下编译相同的示例失败。
汇编
c++ - 用非常量值初始化的对 cont 类成员的引用
我有一个类应该作为其输入数据,或者使用对外部数据的引用(不复制),或者根据其他输入创建数据本身。我更喜欢使用引用(以避免取消引用,因为数据是矩阵)并最终得到以下结构(简化):
该示例有效:
但是这种方法有什么潜在的问题吗?特别是,我正在更改的事实x0
是由const向量x
“合法”C++ 引用的,还是其他编译器可能会抱怨的事情?
另外,我可以确定第一个构造函数避免复制数据吗?
c++ - 如果 C++ 类同时包含 const 引用和非 const 引用复制构造函数怎么办?
片段1:
输出:调用 const 复制构造函数
片段2:
输出:调用非常量复制构造函数
片段3:
输出:错误:复制构造函数必须通过引用传递其第一个参数
我很困惑:
- 对于代码段 2,为什么这里的非常量复制构造函数有效?为什么调用非 const 复制构造函数,而不是 const 构造函数。
- 对于片段 3,我知道复制构造函数必须使用 const 引用以避免无限递归。但是 Here class C has got
C(const C& c)
,C(C c)
不会导致无限递归,为什么它仍然不起作用?
c++ - 构造函数中的字符串常量引用与 int 常量引用
我试图通过尝试构造函数和引用来学习。我写的课如下,我期待课后写的答案
但是我得到这样的东西。m_name
当我调用该函数时丢失。使用相同的类int
代替string
. 问题是什么?
现在同一个类有int const
参考
在这种情况下,我得到了正确的答案。
有人可以解释原因吗?内置类型是否持续存在?
c++ - 避免构造函数中 const 引用和 rvalue 引用的指数增长
我正在为机器学习库编写一些模板类,我经常遇到这个问题。我主要使用策略模式,其中类接收不同功能的模板参数策略,例如:
问题出在构造函数上。随着策略(模板参数)数量的增长,常量引用和右值引用的组合呈指数增长。在前面的示例中:
有什么办法可以避免这种情况吗?
c++ - 在 ?: 表达式中创建的 C++ 临时对象的生命周期是否通过将其绑定到本地 const 引用来扩展?
我不清楚临时对象的生命周期是否会通过将其绑定到 ?: 表达式中的 const 引用来延长:
通过调用默认构造函数 Foo() 创建的临时对象的生命周期是否通过将其绑定到本地 const ref 来扩展,即使绑定是有条件的?或者这是否会创建一个悬空引用,因为 Foo() 的临时值将在 ?: 表达式的末尾被破坏?