diff options
Diffstat (limited to 'boost/hana/bool.hpp')
-rw-r--r-- | boost/hana/bool.hpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/boost/hana/bool.hpp b/boost/hana/bool.hpp index e69654dd85..7ba1bfcb6c 100644 --- a/boost/hana/bool.hpp +++ b/boost/hana/bool.hpp @@ -192,8 +192,9 @@ BOOST_HANA_NAMESPACE_BEGIN namespace literals { template <char ...c> - constexpr auto operator"" _c() - { return llong_c<ic_detail::parse<sizeof...(c)>({c...})>; } + constexpr auto operator"" _c() { + return hana::llong<ic_detail::parse<sizeof...(c)>({c...})>{}; + } } ////////////////////////////////////////////////////////////////////////// @@ -221,8 +222,10 @@ BOOST_HANA_NAMESPACE_BEGIN template <typename Cond, typename Then, typename Else> static constexpr decltype(auto) apply(Cond const&, Then&& t, Else&& e) { - return eval_if_impl::apply(hana::bool_c<static_cast<bool>(Cond::value)>, - static_cast<Then&&>(t), static_cast<Else&&>(e)); + constexpr bool cond = static_cast<bool>(Cond::value); + return eval_if_impl::apply(hana::bool_<cond>{}, + static_cast<Then&&>(t), + static_cast<Else&&>(e)); } template <typename Then, typename Else> @@ -241,8 +244,10 @@ BOOST_HANA_NAMESPACE_BEGIN template <typename Cond, typename Then, typename Else> static constexpr decltype(auto) apply(Cond const&, Then&& t, Else&& e) { - return if_impl::apply(hana::bool_c<static_cast<bool>(Cond::value)>, - static_cast<Then&&>(t), static_cast<Else&&>(e)); + constexpr bool cond = static_cast<bool>(Cond::value); + return if_impl::apply(hana::bool_<cond>{}, + static_cast<Then&&>(t), + static_cast<Else&&>(e)); } //! @todo We could return `Then` instead of `auto` to sometimes save |