/*============================================================================= Copyright (c) 2011-2013 Bolero MURAKAMI https://github.com/bolero-MURAKAMI/Sprout Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ #ifndef SPROUT_INTEGER_STATIC_POW_HPP #define SPROUT_INTEGER_STATIC_POW_HPP #include #include namespace sprout { // // static_pow2 // template struct static_pow2 : public std::integral_constant {}; namespace detail { template struct static_pow2m1; template struct static_pow2m1 : public std::integral_constant {}; template struct static_pow2m1 : public std::integral_constant {}; } // namespace detail // // static_pow2m1 // template struct static_pow2m1 : public sprout::detail::static_pow2m1 {}; namespace detail { template struct static_pow; template struct static_pow : public std::integral_constant {}; template struct static_pow : public std::integral_constant {}; template struct static_pow : public std::integral_constant {}; template struct static_pow : public sprout::detail::static_pow::value, 2> {}; template struct static_pow : public std::integral_constant::value> {}; } // namespace detail // // static_pow // template struct static_pow : public sprout::detail::static_pow {}; } // namespace sprout #endif // #ifndef SPROUT_INTEGER_STATIC_POW_HPP