| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | /*!@fileDefines `boost::hana::IntegralConstant`.@copyright Louis Dionne 2013-2017Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */#ifndef BOOST_HANA_CONCEPT_INTEGRAL_CONSTANT_HPP#define BOOST_HANA_CONCEPT_INTEGRAL_CONSTANT_HPP#include <boost/hana/fwd/concept/integral_constant.hpp>#include <boost/hana/config.hpp>#include <boost/hana/core/tag_of.hpp>#include <boost/hana/detail/integral_constant.hpp>BOOST_HANA_NAMESPACE_BEGIN    namespace detail {        template <typename C, typename Tag = typename tag_of<C>::type>        struct integral_constant_dispatch            : hana::integral_constant<bool,                hana::IntegralConstant<Tag>::value            >        { };        template <typename C>        struct integral_constant_dispatch<C, C>            : hana::integral_constant<bool, false>        { };    }    //! @cond    template <typename C>    struct IntegralConstant        : detail::integral_constant_dispatch<C>    { };    //! @endcondBOOST_HANA_NAMESPACE_END#endif // !BOOST_HANA_CONCEPT_INTEGRAL_CONSTANT_HPP
 |