// Copyright (c) 2019 Robert Ramey // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include template using safe_t = boost::safe_numerics::safe< T, boost::safe_numerics::native >; #include "test_or_constexpr.hpp" #include "test_values.hpp" using namespace boost::mp11; template struct test_pair { static const std::size_t i = First(); static const std::size_t j = Second(); constexpr static const bool value = test_or_constexpr( mp_at_c()(), mp_at_c()(), '.' ); }; #include #include int main(){ using namespace boost::mp11; using value_indices = mp_iota_c::value>; static_assert( mp_all_of< mp_product< test_pair, value_indices, value_indices >, mp_to_bool >(), "all values for all integer types correctly or'ed" ); return 0; }