#8842 closed Patches (fixed)
BOOST_MOVABLE_BUT_NOT_COPYABLE and is_copy_constructible<T> trait
| Reported by: | Antony Polukhin | Owned by: | Ion Gaztañaga | 
|---|---|---|---|
| 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
Change History (6)
comment:1 by , 9 years ago
| Severity: | Problem → Showstopper | 
|---|
comment:3 by , 9 years ago
comment:4 by , 9 years ago
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.


This ticket blocks #8802, which blocks #7888