Is there a type trait that defines both is_arithmetic and is_enum together? (not is_scalar though)
BOOST_STATIC_ASSERT(boost::is_arithmetic<Integer>::value == true || boost::is_enum<Integer>::value == true);