我想在模板中使用unsigned T:
template<class T>
void signed2unsigned(const T* source, unsigned T* dest, size_t n)
{
do
{
intmax_t s=*source;
s+=min(*source);
*dest=s;
++dest;
++source;
--n;
}
while(n!=0);
}
这不起作用,因为在考虑类型T之前,unsigned without扩展为unsigned int。除了引入U并在文档中写入U必须是无符号T?
之外是否有其他解决方法答案 0 :(得分:11)
std::make_unsigned<T>::type
是你似乎在寻找的东西。
答案 1 :(得分:2)
您可以使用std::make_unsigned<T>::type