テンプレート引数に符号なしの short もしくは char の型を受け取った時に、そいつの符号ありにした型をどうにかして引っ張って来れないだろうか、と真面目に考えてしまった。無理だよね……。なんかすごいがんばればできるんじゃないか、とかちょっとだけ夢見てしまいました。
template<class T> //< とりあえずここは unsigned short とする
void func(T value)
{
// signed short の min がほしい
T hoge = value - std::numeric_limits<signed T>::min();
}
void main()
{
unsigned short value = 1111;
func(value);
}みたいなことがやりたかったのですけれど。
定時過ぎていたのでとりあえずテンプレート引数もうひとつ追加して、そちらに signed な型を渡すようにしてどうにかしましたが、呼び出し側の面倒を減らしたかったので func 内でできたら素敵だったのに。