繁体   English   中英

C ++确定自动类型并传递给功能模板

[英]C++ determine the type of auto and pass to function template

我有一个功能:

template<typename T> f(T x) { do something with x; }

我想将此自动指针传递给函数

auto x = ...
f<???>(x)

反正我有这样做吗?

像这样称呼它

auto x = ...
f(x)

模板化函数会根据您传递给它的参数自动推断出类型。 实际上,这是调用模板函数的首选方法。

如果您确实要明确为其指定类型(我不建议这样做),则可以为其使用decltype:

auto x = ...
f<decltype(x)>(x)

这里是一个最小的证明: http : //coliru.stacked-crooked.com/a/d01070d90c0b9803

编译器应该足够聪明以找出类型,因此

auto x = ...
f(x);

或者您可以使用decltype

auto x = ...
f<decltype(x)>(x);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM