diff --git a/include/boost/mp11/utility.hpp b/include/boost/mp11/utility.hpp index b68351a..b085d0e 100644 --- a/include/boost/mp11/utility.hpp +++ b/include/boost/mp11/utility.hpp @@ -92,6 +92,8 @@ template class F, class... T> using mp_valid = typename detai #endif +template using mp_valid_q = mp_valid; + // mp_defer namespace detail { diff --git a/test/mp_valid.cpp b/test/mp_valid.cpp index f4e89d7..9a95b94 100644 --- a/test/mp_valid.cpp +++ b/test/mp_valid.cpp @@ -34,6 +34,7 @@ using Q_add_pointer = mp_quote; int main() { using boost::mp11::mp_valid; + using boost::mp11::mp_valid_q; using boost::mp11::mp_identity; BOOST_TEST_TRAIT_FALSE((mp_valid)); @@ -50,6 +51,11 @@ int main() BOOST_TEST_TRAIT_FALSE((mp_valid)); BOOST_TEST_TRAIT_FALSE((mp_valid)); + BOOST_TEST_TRAIT_FALSE((mp_valid_q)); + BOOST_TEST_TRAIT_TRUE((mp_valid_q)); + BOOST_TEST_TRAIT_FALSE((mp_valid_q)); + BOOST_TEST_TRAIT_FALSE((mp_valid_q)); + BOOST_TEST_TRAIT_FALSE((mp_valid)); BOOST_TEST_TRAIT_TRUE((mp_valid)); BOOST_TEST_TRAIT_TRUE((mp_valid)); @@ -64,6 +70,11 @@ int main() BOOST_TEST_TRAIT_TRUE((mp_valid)); BOOST_TEST_TRAIT_FALSE((mp_valid)); + BOOST_TEST_TRAIT_FALSE((mp_valid_q)); + BOOST_TEST_TRAIT_TRUE((mp_valid_q)); + BOOST_TEST_TRAIT_TRUE((mp_valid_q)); + BOOST_TEST_TRAIT_FALSE((mp_valid_q)); + #if !BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 70000 ) // g++ up to at least 6.3 doesn't like add_reference for some reason or other BOOST_TEST_TRAIT_FALSE((mp_valid));