我想知道标准委员会是否考虑扩展 C++14auto
关键字来推断函数模板参数类型,因为它现在存在于通用 lambda 中。(从这个答案中可以很好地看出)
因为它适用于 lambda 函数,所以它也应该适用于任何函数。当然,经典语法完全是多余的:
template< typename T >
void f(T param);
但是为了同样的结果,能够写这个:
void f(auto param);
我认为可以减少堵塞的代码(更短更整洁),并在这个用例中保持高度的一致性:
auto v = func1();
f(v);
如您所见,我们使用自动类型推断器来声明v
,但随后我们必须使用硬类型参数化函数 f 或模板化 f。
结合auto
我们应该使用auto
,那会更一致。
编辑:这个问题确实有效地提出了同样的问题,但不那么直接。并且还没有得到 user657267 给出的答案,我在其下复制和扩展。