// Copyright 2019 Hans Dembinski // // 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 #include "std_ostream.hpp" using namespace boost::histogram::detail; struct nothrow_move { nothrow_move(nothrow_move&&) noexcept {} nothrow_move& operator=(nothrow_move&&) noexcept { return *this; } }; struct throw_move { throw_move(throw_move&&) {} throw_move& operator=(throw_move&&) { return *this; } }; int main() { BOOST_TEST_TRAIT_TRUE( (std::is_nothrow_move_constructible >)); BOOST_TEST_TRAIT_FALSE( (std::is_nothrow_move_constructible >)); BOOST_TEST_TRAIT_FALSE( (std::is_nothrow_move_constructible >)); BOOST_TEST_TRAIT_FALSE( (std::is_nothrow_move_constructible >)); BOOST_TEST_GE(sizeof(compressed_pair), sizeof(int) + sizeof(char)); BOOST_TEST_EQ(sizeof(compressed_pair), sizeof(int)); BOOST_TEST_EQ(sizeof(compressed_pair), sizeof(int)); return boost::report_errors(); }