summaryrefslogtreecommitdiff
path: root/boost/hana/bool.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/hana/bool.hpp')
-rw-r--r--boost/hana/bool.hpp17
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