diff --git a/include/boost/lockfree/lockfree_forward.hpp b/include/boost/lockfree/lockfree_forward.hpp index d51cc87..7d5ac98 100644 --- a/include/boost/lockfree/lockfree_forward.hpp +++ b/include/boost/lockfree/lockfree_forward.hpp @@ -39,7 +39,7 @@ struct allocator; template < typename T, typename... Options > # if !defined( BOOST_NO_CXX20_HDR_CONCEPTS ) requires( std::is_copy_assignable_v< T >, - std::is_trivially_assignable_v< T&, T >, + std::is_trivially_copy_assignable_v< T >, std::is_trivially_destructible_v< T > ) # endif class queue; diff --git a/include/boost/lockfree/queue.hpp b/include/boost/lockfree/queue.hpp index f7b2249..91bd660 100644 --- a/include/boost/lockfree/queue.hpp +++ b/include/boost/lockfree/queue.hpp @@ -77,14 +77,14 @@ typedef parameter::parameters< boost::parameter::optional< tag::allocator >, boo * * \b Requirements: * - T must have a copy constructor - * - T must have a trivial assignment operator + * - T must have a trivial copy assignment operator * - T must have a trivial destructor * * */ template < typename T, typename... Options > #if !defined( BOOST_NO_CXX20_HDR_CONCEPTS ) requires( std::is_copy_assignable_v< T >, - std::is_trivially_assignable_v< T&, T >, + std::is_trivially_copy_assignable_v< T >, std::is_trivially_destructible_v< T > ) #endif class queue @@ -93,7 +93,7 @@ class queue #ifndef BOOST_DOXYGEN_INVOKED BOOST_STATIC_ASSERT( ( std::is_trivially_destructible< T >::value ) ); - BOOST_STATIC_ASSERT( ( std::is_trivially_assignable< T&, T >::value ) ); + BOOST_STATIC_ASSERT( ( std::is_trivially_copy_assignable< T >::value ) ); typedef typename detail::queue_signature::bind< Options... >::type bound_args;