我正在使用一个广为人知的模板来允许二进制常量。
template< unsigned long long N >
struct binary
{
enum { value = (N % 10) + 2 * binary< N / 10 > :: value } ;
};
template<>
struct binary< 0 >
{
enum { value = 0 } ;
};
你可以像这样执行 binary<101011011>::value。不幸的是,这对于无符号长整型有 20 位数字的限制。
有没有更好的解决方案?
uint128_t
吗?还是其他什么? - jww