// 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 #include "test_left_shift_automatic_results.hpp" template using safe_t = boost::safe_numerics::safe< T, boost::safe_numerics::automatic >; #include "test_left_shift_constexpr.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_left_shift_constexpr( mp_at_c()(), mp_at_c()(), test_left_shift_automatic_result[i][j] ); }; #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 shifted to the left" ); return 0; }