summaryrefslogtreecommitdiff
path: root/boost/hana/concept/logical.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/hana/concept/logical.hpp')
-rw-r--r--boost/hana/concept/logical.hpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/boost/hana/concept/logical.hpp b/boost/hana/concept/logical.hpp
index 74c0fb3a51..ecfd0a4ebe 100644
--- a/boost/hana/concept/logical.hpp
+++ b/boost/hana/concept/logical.hpp
@@ -15,6 +15,7 @@ Distributed under the Boost Software License, Version 1.0.
#include <boost/hana/config.hpp>
#include <boost/hana/core/default.hpp>
#include <boost/hana/core/tag_of.hpp>
+#include <boost/hana/detail/integral_constant.hpp>
#include <boost/hana/eval_if.hpp>
#include <boost/hana/not.hpp>
#include <boost/hana/while.hpp>
@@ -22,12 +23,13 @@ Distributed under the Boost Software License, Version 1.0.
BOOST_HANA_NAMESPACE_BEGIN
template <typename L>
- struct Logical {
- using Tag = typename tag_of<L>::type;
- static constexpr bool value = !is_default<eval_if_impl<Tag>>::value &&
- !is_default<not_impl<Tag>>::value &&
- !is_default<while_impl<Tag>>::value;
- };
+ struct Logical
+ : hana::integral_constant<bool,
+ !is_default<eval_if_impl<typename tag_of<L>::type>>::value &&
+ !is_default<not_impl<typename tag_of<L>::type>>::value &&
+ !is_default<while_impl<typename tag_of<L>::type>>::value
+ >
+ { };
BOOST_HANA_NAMESPACE_END
#endif // !BOOST_HANA_CONCEPT_LOGICAL_HPP