template<UINT64 val>


struct TBIT_COUNTING_STATIC{
static const byte value = (val & 0x01) + TBIT_COUNTING_STATIC<(val>>1)>::value;
};
template<>
struct TBIT_COUNTING_STATIC<0>{
static const byte value = 0;
};

#define _MACRO_STATIC_BIT_COUNT(val) (::UTIL::PRIVATE::TBIT_COUNTING_STATIC<val>::value)