【发布时间】:2013-05-04 18:44:49
【问题描述】:
我有一个只能为标量类型(整数、浮点数等)实例化的模板类,我希望成员 typedef 始终是该类型的有符号变体。那就是:
unsigned int -> signed int
signed long long -> signed long long(已签名)
unsigned char -> signed char
float -> float
long double -> long double
等等……
不幸的是,std::make_signed 仅适用于整数类型,不适用于浮点类型。最简单的方法是什么?我正在寻找 using SignedT = ...; 形式的东西,作为模板参数 T 已经保证是标量的模板类的一部分。
【问题讨论】:
标签: c++ templates c++11 typetraits