Modify

Ticket #8842 (closed Patches: fixed)

Opened 9 months ago

Last modified 8 months ago

BOOST_MOVABLE_BUT_NOT_COPYABLE and is_copy_constructible<T> trait

Reported by: apolukhin Owned by: igaztanaga
Milestone: Boost 1.55.0 Component: move
Version: Boost 1.54.0 Severity: Showstopper
Keywords: Cc:

Description

There is a ticket #8802 to add is_copy_constructible<T> trait. Unfortunately, for correct work of that trait in C++03/C++98 with BOOST_MOVABLE_BUT_NOT_COPYABLE macro some changes for Boost.Move are required.

Boost.Move requires the following patch applied to to BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN in boost/move/core.hpp :

#ifdef BOOST_NO_CXX11_DELETED_FUNCTIONS
   #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
      private:\
      TYPE(TYPE &);\
      TYPE& operator=(TYPE &);\
+      public: \
+      typedef int boost_move_no_copy_constructor_or_assign; \
+      private: \
   //
#else

Some tests for that case already exist in boost/type_traits/is_copy_constructible.hpp, I'll uncomment them when this patch will be applied.

Motivation: Without that patch it is impossible to have a nice implementation of move_if_noexcept, that is going to be used by Boost.CircularBuffer? and may be used by other containers.

P.S.: If you wish and have no spare time, I can apply this patch and add some tests to Boost.Move

Attachments

Change History

comment:1 Changed 9 months ago by apolukhin

  • Severity changed from Problem to Showstopper

This ticket blocks #8802, which blocks #7888

comment:2 Changed 9 months ago by igaztanaga

  • Status changed from new to closed
  • Resolution set to fixed

(In [85180]) Fixes #8842.

comment:3 Changed 9 months ago by apolukhin

(In [85193]) Test is_copy_constructible trait on C++03/98 with Boost.Move emulation of noncopyable-movable type (refs #8802, refs #8842)

comment:4 Changed 8 months ago by apolukhin

If it is possible and all the tests pass well, can this fix be merged into release branch in nearest one and a half weeks? I'm a little bit frightened that there'll be not enough time to merge and release-test TypeTraits? and CircularBufer? changes.

comment:5 Changed 8 months ago by igaztanaga

Ok, I'll merge it into the release branch ASAP.

comment:6 Changed 8 months ago by igaztanaga

Merged, thanks for the bug report.

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.