[英]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.