|
Boost : |
Subject: [boost] [type_triats] [move] is_copy_constructible<T> trait
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2013-07-09 02:26:37
Hi,
I have an implementation of is_copy_constructible<T> trait. It works great
with C++11, in C++03 it detects constructors assuming that if type is
derived from boost::noncopyable or uses BOOST_MOVABLE_BUT_NOT_COPYABLE
macro - it has no copy constructor.
Questions are:
* May I add that trait to trunk version of Boost.TypeTraits (with
documentation and tests, as usual)?
* May I or Boost.Move maintainer apply this patch 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
Why do I need this trait? Well, it allows to implement move_if_noexcept()
that is required for circular_buffer and possibly for other containers.
-- Best regards, Antony Polukhin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk