具有非整数和移位的模板

时间:2017-10-26 09:41:13

标签: c++ templates bit-shift

我有以下模板功能:

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;
}

如果Tdouble,编译器会抱怨

  

'&LT;&LT;'非法,左操作数有'double'类型

尽管永远不会调用换档操作。

有没有办法通知编译器永远不会调用shift?

0 个答案:

没有答案