#include <iostream>
template<typename T>
class Hoge {
public:
Hoge(T i)
{
std::cout << i << std::endl;
}
};

new Hoge<int>(-1); // 結果:-1 (○)
new Hoge<unsigned short>(-1); // 結果:65535 (○)
new Hoge<unsigned char>(-1); // 結果: (×)
new Hoge<signed char>(-1); // 結果: (×)

どうすりゃいい?