我有以下模板功能:
template<typename T> std::vector<T> foo::bar(std::vector<T> baz) {
if (!std::numeric_limits<T>::is_integer) {
return baz;
} else {
for(int i = 0; i < baz.size(); ++i) {
baz[i] <<= 1;
}
return baz;
}
如果T
是double
,编译器会抱怨
'&LT;&LT;'非法,左操作数有'double'类型
尽管永远不会调用换档操作。
有没有办法通知编译器永远不会调用shift?