// Copyright Louis Dionne 2013-2017 // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) #include #include namespace hana = boost::hana; template bool runtime_bool() { return value; } template auto constant_bool() { return make_cnumeric(); } int main() { // Make sure it works at function scope BOOST_HANA_ASSERT(runtime_bool()); BOOST_HANA_ASSERT(constant_bool()); BOOST_HANA_ASSERT_MSG(runtime_bool(), "message"); BOOST_HANA_ASSERT_MSG(constant_bool(), "message"); // Make sure we can reference a local variable auto ct_yes = constant_bool(); BOOST_HANA_ASSERT(ct_yes); BOOST_HANA_ASSERT_MSG(ct_yes, "message"); auto rt_yes = runtime_bool(); BOOST_HANA_ASSERT(rt_yes); BOOST_HANA_ASSERT_MSG(rt_yes, "message"); }