相关疑难解决方法(0)

函数中的自动参数类型

我想知道标准委员会是否考虑扩展 C++14auto关键字来推断函数模板参数类型,因为它现在存在于泛型 lambda 中。(正如在这个答案中可以很好地描述的那样

因为它适用于 lambda 函数,所以它也应该适用于任何函数。当然,使用经典语法将完全多余:

template< typename T >
void f(T param);
Run Code Online (Sandbox Code Playgroud)

但是能够写这个,以获得相同的结果:

void f(auto param);
Run Code Online (Sandbox Code Playgroud)

我认为可以减少阻塞的代码(更短更整洁),并在这个用例中实现很好的一致性:

auto v = func1();
f(v);
Run Code Online (Sandbox Code Playgroud)

如您所见,我们使用自动类型推导器来声明v,但随后我们必须使用硬类型参数化函数 f 或模板化函数 f。
结合auto我们应该使用auto,这将更加一致。

编辑:这个问题确实有效地提出了同样的问题,但不那么直接。并且还没有得到 user657267 给出的答案,我在其下复制和扩展。

c++ auto c++14 c++17

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

auto ×1

c++ ×1

c++14 ×1

c++17 ×1