[英]C++ template better than a int->unsigned conversion?
我有两个功能,如下所示
template<typename T>
unsigned int myFunction(T myelement)
{
myelement->func();
return 2;
}
void myFunction(unsigned int myelement)
{
}
我正在使用以下代码
myFunction(2);
visual studio 2012抱怨说“int has not - > func()”。 为什么不使用unsigned int版本?
您误读了错误消息。 编译器不使用该函数,它实例化它以确定它是否是候选者。 您需要为不合适的类型禁用实例化:
template<typename T>
typename std::enable_if<!std::is_fundamental<T>::value, unsigned int >::type
myFunction( T myelement )
{
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.