问题标签 [trailing-return-type]
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++ - 在 C++11 函数中使用尾随返回类型的优势
与普通返回类型相比,在 C++11 中指定尾随返回类型有什么优势?看这里的foo1
vs foo2
:
c++ - 从 C++14 开始合法使用尾随返回类型语法
实际上是否有任何理由不再使用以下语法:
现在我们可以使用:
尾随返回类型语法现在似乎有点多余?
c++ - 函数的返回类型可以从函数内部获取吗?
函数的返回类型是否可以在函数内部以简单的方式获取?
例如,给定:
在 C++11 中,我可以在标记的行中引用 的大讨厌的返回类型foo
,foo
而不重复它// <-- here
吗?
c++ - c++ 可变参数模板实例化深度超过最大值 900
我正在使用 c++11 可变参数模板,但是编译器抱怨模板实例化深度超过了 900 的最大值,代码如下所示:
我正在使用这个模板,如:
但是,如果我将可变参数模板定义更改为:
它会正常工作。我不清楚为什么会这样。在我看来,上面的用法看起来也是有效的,因为它仍然递归地减少调用 compose 的参数。
visual-c++ - 通用 lambda 尾随返回类型中的函数范围名称无法编译 (MSVC)
给定以下代码片段,案例 1、2、3 和 4 在 Visual Studio 2017 (/std:c++14) 中编译,但案例 5 没有。这是怎么回事?
这是编译器的输出。
c++ - 我可以使用 auto 或 decltype 代替尾随返回类型吗?
我发现trailing return type
定义返回复杂类型的函数的返回非常容易,例如:
- 我想知道函数
get_diag
和get_diag2
. 所以只要输出相同,为什么我需要使用尾随返回类型?
c++ - 如何使用原语和 Eigen 创建尾随返回类型?
我想用c++14编写一个模板函数,我想让函数的返回类型尽可能灵活。因此,有时函数采用的参数是原始参数(int
, double
),但有时它们可以是容器甚至Eigen
对象!
所以对于原语,我会简单地写这样的东西:
但是假设如果我提供Eigen::VectorXd
,该代码将不起作用。我怎样才能克服这个障碍?
我正在考虑放置一个 if 语句,但我将无法比较任何内容,因为在此之前不会声明参数。
c++ - C++17 中的 Lambda 表达式:用于类型转换的尾随返回类型与 static_cast
如何正确转换int
为long
lambda 表达式的内部/外部?如何正确检查 lambda 中的数学溢出?
在lambda内部/外部乘以整数后检查溢出的最佳方法是什么?
我是否需要将 TRT(尾随返回类型)添加-> long
到 lambda 才能正确转换为int
to long
?
我是否需要添加static_cast
到 lambda 才能正确转换int
为long
:
或者,可能是,我需要结合这个?
或者,可能是,我需要写 lambda 的类型?
c++ - 从输入参数具体用例推导出的尾随返回类型
我已经看到,使用尾随返回类型的原因之一是我们想从输入参数中推断出返回类型。
我知道还有其他原因,但我将重点放在这个问题上。
给定的示例之一是:
但我想不出任何具体的用例。
我的意思是,我们在编写函数时总是知道函数的返回类型,当真正需要并且无法避免从参数推导返回类型时,我找不到任何具体的例子。
我们总是可以(如果我没记错的话)通过直接指定返回类型来重写函数的原型,而不进行任何推导,这在我的意义上使它更简洁明了。
上面的例子可以改写为:
在我看来,这比尾随返回类型版本更简洁且更具可读性。
我错过了什么?