Boost C++ Libraries: Ticket #8842: BOOST_MOVABLE_BUT_NOT_COPYABLE and is_copy_constructible<T> trait https://svn.boost.org/trac10/ticket/8842 <p> There is a ticket <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8802" title="#8802: Feature Requests: Add is_copy_constructible&lt;T&gt; trait (closed: fixed)">#8802</a> to add is_copy_constructible&lt;T&gt; trait. Unfortunately, for correct work of that trait in C++03/C++98 with <code>BOOST_MOVABLE_BUT_NOT_COPYABLE</code> macro some changes for Boost.Move are required. </p> <p> Boost.Move requires the following patch applied to to <code>BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN</code> in boost/move/core.hpp : </p> <pre class="wiki">#ifdef BOOST_NO_CXX11_DELETED_FUNCTIONS #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \ private:\ TYPE(TYPE &amp;);\ TYPE&amp; operator=(TYPE &amp;);\ + public: \ + typedef int boost_move_no_copy_constructor_or_assign; \ + private: \ // #else </pre><p> Some tests for that case already exist in <code>boost/type_traits/is_copy_constructible.hpp</code>, I'll uncomment them when this patch will be applied. </p> <p> Motivation: Without that patch it is impossible to have a nice implementation of <code>move_if_noexcept</code>, that is going to be used by Boost.<a class="missing wiki">CircularBuffer</a> and may be used by other containers. </p> <p> P.S.: If you wish and have no spare time, I can apply this patch and add some tests to Boost.Move </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8842 Trac 1.4.3 Antony Polukhin Tue, 30 Jul 2013 08:12:55 GMT severity changed https://svn.boost.org/trac10/ticket/8842#comment:1 https://svn.boost.org/trac10/ticket/8842#comment:1 <ul> <li><strong>severity</strong> <span class="trac-field-old">Problem</span> → <span class="trac-field-new">Showstopper</span> </li> </ul> <p> This ticket blocks <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8802" title="#8802: Feature Requests: Add is_copy_constructible&lt;T&gt; trait (closed: fixed)">#8802</a>, which blocks <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a> </p> Ticket Ion Gaztañaga Thu, 01 Aug 2013 14:17:41 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/8842#comment:2 https://svn.boost.org/trac10/ticket/8842#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85180" title="Fixes #8842.">[85180]</a>) Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8842" title="#8842: Patches: BOOST_MOVABLE_BUT_NOT_COPYABLE and is_copy_constructible&lt;T&gt; trait (closed: fixed)">#8842</a>. </p> Ticket Antony Polukhin Sat, 03 Aug 2013 06:09:36 GMT <link>https://svn.boost.org/trac10/ticket/8842#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8842#comment:3</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85193" title="Test is_copy_constructible trait on C++03/98 with Boost.Move emulation ...">[85193]</a>) Test is_copy_constructible trait on C++03/98 with Boost.Move emulation of noncopyable-movable type (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8802" title="#8802: Feature Requests: Add is_copy_constructible&lt;T&gt; trait (closed: fixed)">#8802</a>, refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8842" title="#8842: Patches: BOOST_MOVABLE_BUT_NOT_COPYABLE and is_copy_constructible&lt;T&gt; trait (closed: fixed)">#8842</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Wed, 21 Aug 2013 08:26:03 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8842#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8842#comment:4</guid> <description> <p> 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 <a class="missing wiki">TypeTraits</a> and <a class="missing wiki">CircularBufer</a> changes. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Wed, 21 Aug 2013 09:23:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8842#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8842#comment:5</guid> <description> <p> Ok, I'll merge it into the release branch ASAP. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Sun, 25 Aug 2013 19:17:07 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8842#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8842#comment:6</guid> <description> <p> Merged, thanks for the bug report. </p> </description> <category>Ticket</category> </item> </channel> </rss>