声明"unsigned T"

use*_*329 8 c++ unsigned templates integer

我想在模板中使用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);
    }
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为在考虑类型T之前,unsigned without扩展为unsigned int.是否有一个解决方法,只是介绍U并写入文档,U必须是一个无符号T?

Jer*_*fin 11

std::make_unsigned<T>::type 是你似乎在寻找的东西.


4pi*_*ie0 2

您可以使用std::make_unsigned<T>::type