Я использую известный шаблон, позволяющий бинарные константы
template< unsigned long long N >
struct binary
{
enum { value = (N % 10) + 2 * binary< N / 10 > :: value } ;
};
template<>
struct binary< 0 >
{
enum { value = 0 } ;
};
Итак, вы можете сделать что-то вроде двоичного < 101011011 > :: value. К сожалению, для длинной длинной строки без знака это ограничение составляет 20 цифр.
Есть ли у кого-то лучшее решение?