From 972280e59fe05f97fd309bb7f2962578382b918d Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Thu, 23 Jan 2020 01:08:32 +0200 Subject: [PATCH] Remove commented-out variant_copy_base --- include/boost/variant2/variant.hpp | 156 ----------------------------- 1 file changed, 156 deletions(-) diff --git a/include/boost/variant2/variant.hpp b/include/boost/variant2/variant.hpp index cf56207..cf108e8 100644 --- a/include/boost/variant2/variant.hpp +++ b/include/boost/variant2/variant.hpp @@ -1052,162 +1052,6 @@ template struct is_nothrow_swappable: mp11::mp_valid struct variant_copy_base_impl; - -template using variant_copy_base = variant_copy_base_impl< - mp11::mp_all< - std::is_trivially_destructible..., - is_trivially_copy_constructible..., - is_trivially_move_constructible..., - is_trivially_copy_assignable..., - is_trivially_move_assignable...>::value, T...>; - -template struct variant_copy_base_impl: public variant_base -{ - using variant_base = detail::variant_base; - using variant_base::variant_base; - - variant_copy_base_impl() = default; - variant_copy_base_impl( variant_copy_base_impl const& ) = default; - variant_copy_base_impl( variant_copy_base_impl && ) = default; - variant_copy_base_impl& operator=( variant_copy_base_impl const& ) = default; - variant_copy_base_impl& operator=( variant_copy_base_impl && ) = default; -}; - -template struct variant_copy_base_impl: public variant_base -{ - using variant_base = detail::variant_base; - using variant_base::variant_base; - -private: - - variant_copy_base_impl( variant_copy_base_impl const volatile& r ) = delete; - variant_copy_base_impl& operator=( variant_copy_base_impl const volatile& r ) = delete; - -public: - - variant_copy_base_impl() = default; - - // copy constructor - - template...>, E1> - > - constexpr variant_copy_base_impl( variant_copy_base_impl const& r ) noexcept - : variant_base( static_cast(r) ) - { - } - -private: - - struct L1 - { - variant_base * this_; - variant_copy_base_impl const & r; - - template void operator()( I i ) const - { - this_->_replace( i, r._get_impl( i ) ); - } - }; - -public: - - template...>>, E1>, - class E3 = mp11::mp_if...>, E1> - > - variant_copy_base_impl( variant_copy_base_impl const& r ) - noexcept( mp11::mp_all...>::value ) - { - mp11::mp_with_index( r.index(), L1{ this, r } ); - } - - // move constructor - - variant_copy_base_impl( variant_copy_base_impl && ) = default; - - // copy assignment - - template..., detail::is_trivially_copy_constructible..., detail::is_trivially_copy_assignable...>, E1> - > - BOOST_CXX14_CONSTEXPR variant_copy_base_impl& operator=( variant_copy_base_impl const & r ) noexcept - { - static_cast( *this ) = static_cast( r ); - return *this; - } - -private: - - struct L3 - { - variant_copy_base_impl * this_; - variant_copy_base_impl const & r; - - template void operator()( I i ) const - { - this_->variant_base::template emplace( r._get_impl( i ) ); - } - }; - -public: - - template..., detail::is_trivially_copy_constructible..., detail::is_trivially_copy_assignable...>>, E1>, - class E3 = mp11::mp_if..., std::is_copy_assignable...>, E1> - > - BOOST_CXX14_CONSTEXPR variant_copy_base_impl& operator=( variant_copy_base_impl const & r ) - noexcept( mp11::mp_all...>::value ) - { - mp11::mp_with_index( r.index(), L3{ this, r } ); - return *this; - } - - // move assignment - - template..., detail::is_trivially_move_constructible..., detail::is_trivially_move_assignable...>, E1> - > - BOOST_CXX14_CONSTEXPR variant_copy_base_impl& operator=( variant_copy_base_impl && r ) noexcept - { - static_cast( *this ) = static_cast( r ); - return *this; - } - -private: - - struct L4 - { - variant_copy_base_impl * this_; - variant_copy_base_impl & r; - - template void operator()( I i ) const - { - this_->variant_base::template emplace( std::move( r._get_impl( i ) ) ); - } - }; - -public: - - template..., detail::is_trivially_move_constructible..., detail::is_trivially_move_assignable...>>, E1>, - class E3 = mp11::mp_if..., std::is_move_assignable...>, E1> - > - variant_copy_base_impl& operator=( variant_copy_base_impl && r ) - noexcept( mp11::mp_all...>::value ) - { - mp11::mp_with_index( r.index(), L4{ this, r } ); - return *this; - } -}; - -*/ - // variant_cc_base template struct variant_cc_base_impl;