问题标签 [pass-by-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.

0 投票
0 回答
148 浏览

c++ - 为什么 C++ 在函数调用时优先使用右值引用而不是 const 引用?

所以我用 C++ 11 写了一段代码

代码的输出令人着迷,它是“rval referencence”但是如果我重写代码只是删除一个函数定义:

我得到输出为“const ref”

编辑:如果我再次将代码重写为

仍然是打印“rval ref”,请解释逻辑

有人可以解释为什么 C++ 在传递 ravlue 作为参数时优先使用 && 而不是 const 吗?## Heading ##

0 投票
1 回答
34 浏览

c++11 - 使用带有指针向量的 find_if:如何通过 const 引用将指针传递给 lambda?

在下面的代码中,我尝试通过 find_if 比较一个指针向量并确定其中包含一个成员 a == 5 (在这种情况下当然是两者,但它显示了我的情况)。但是它不编译。

根据我在这里的解释,find_if 提供了实际的向量条目作为 lambda 函数的参数,该函数传统上通过 const ref 占用。但是我如何为指针指定这个,因为我有指针作为向量条目?

(对于冗长的错误消息,使用 gcc 11.1 将此代码带到 Godbolt,但我想这取决于我不知道如何正确指定 lambda 参数)

0 投票
2 回答
109 浏览

c++ - 值传递和 std::move 与转发引用

我经常遇到传值和移动习语:

但在我看来,通过 const 引用或 rvalue 引用在某些情况下可以保存副本。就像是:

或者也许使用转发引用来避免编写两个构造函数。就像是:

是这样吗?如果是这样,为什么不使用它呢?

此外,看起来 C++20 允许使用自动参数来简化语法。我不确定在这种情况下的语法是什么。考虑:

编辑:

建议的问题是信息丰富的,但他们没有提到“汽车”案例。