
#include "boost/mpl/long.hpp"
#include "boost/mpl/alias.hpp"

template< long n > struct binary
    : mpl::long_< ( binary< n / 10 >::value << 1 ) + n % 10 >
{
};

template<> struct binary<0>
    : mpl::long_<0>
{
};
