#include <boost/static_assert.hpp>

template<int N>
struct is_power_of_two {
        enum {val = (N >= 1) & !(N & (N - 1))};
        BOOST_STATIC_ASSERT(val);
};
 
int main() {
        is_power_of_two<5> p;
}