我想在模板中使用无符号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之前,无符号without被扩展为无符号int。除了引入U并编写文档以说明U必须是无符号T之外,还有其他解决方法吗?
std::make_unsigned
怎么样? - Some programmer dude