Boost C++ Libraries: Ticket #979: ::boost::detail::empty_base could be improved https://svn.boost.org/trac10/ticket/979 <p> The empty base class used by the operators library will not actually be empty if you have a class inheriting from operators and the first member also inherits from operators - the work around is to have an empty_base&lt;T&gt; to ensure a unique type - so you end up with: </p> <p> class my_class : equality_comparable&lt;my_class, my_class, empty_base&lt;my_class&gt; &gt; { ... </p> <p> Kind of gross - such a base could be included directly in the operator library. </p> <p> Sean </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/979 Trac 1.4.3 Daniel Frey Wed, 23 May 2007 20:38:35 GMT status, milestone changed; owner set https://svn.boost.org/trac10/ticket/979#comment:1 https://svn.boost.org/trac10/ticket/979#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">Daniel Frey</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> <li><strong>milestone</strong> <span class="trac-field-old">Boost 1.34.1</span> → <span class="trac-field-new">Boost 1.35.0</span> </li> </ul> <p> Accepted, but raised milestone to 1.35.0 as the risk of breaking other compilers is not worth it. Once regression tests show that everything is fine, I might consider moving it back to 1.34.1, but it should not delay 1.34.1. </p> Ticket Daniel Frey Wed, 23 May 2007 20:41:20 GMT component, severity changed https://svn.boost.org/trac10/ticket/979#comment:2 https://svn.boost.org/trac10/ticket/979#comment:2 <ul> <li><strong>component</strong> <span class="trac-field-old">iterator</span> → <span class="trac-field-new">operators</span> </li> <li><strong>severity</strong> <span class="trac-field-old">Problem</span> → <span class="trac-field-new">Optimization</span> </li> </ul> Ticket Daniel Frey Wed, 23 May 2007 23:04:47 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/979#comment:3 https://svn.boost.org/trac10/ticket/979#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Fixed in CVS HEAD </p> Ticket Thomas Witt Tue, 05 Jun 2007 18:21:52 GMT status, milestone changed; resolution deleted https://svn.boost.org/trac10/ticket/979#comment:4 https://svn.boost.org/trac10/ticket/979#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">closed</span> → <span class="trac-field-new">reopened</span> </li> <li><strong>resolution</strong> <span class="trac-field-deleted">fixed</span> </li> <li><strong>milestone</strong> <span class="trac-field-old">Boost 1.35.0</span> → <span class="trac-field-new">Boost 1.34.1</span> </li> </ul> <p> Reopened for inclusion in 1.34.1 </p> Ticket Dave Abrahams Tue, 05 Jun 2007 19:28:59 GMT <link>https://svn.boost.org/trac10/ticket/979#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:5</guid> <description> <p> I can't see how this is appropriate for 1.34.1 </p> <p> It's NAD, in my opinion, and should be put off until the next full release. </p> </description> <category>Ticket</category> </item> <item> <author>sparent@…</author> <pubDate>Tue, 05 Jun 2007 19:34:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:6</guid> <description> <p> Although I have a work around so putting off until 1.35.0 is fine with me - the work around is ugly and I do consider a helper template that adds unnecessary words to my objects a defect. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Thomas Witt</dc:creator> <pubDate>Tue, 05 Jun 2007 21:16:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:7</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:5" title="Comment 5">dave</a>: </p> <blockquote class="citation"> <p> I can't see how this is appropriate for 1.34.1 </p> </blockquote> <p> It's a "simple" change, passes testing on HEAD and it won't delay 1.34.1 even if we have to back it out again. </p> <blockquote class="citation"> <p> It's NAD, in my opinion, and should be put off until the next full release. </p> </blockquote> <p> If this were a commercial project I would agree. My experience is that a more opportunistic approach is required for boost. There is no way prioritizing changes when you can not prioritize work items. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Tue, 05 Jun 2007 22:45:05 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:8</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:7" title="Comment 7">witt</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:5" title="Comment 5">dave</a>: </p> <blockquote class="citation"> <p> I can't see how this is appropriate for 1.34.1 </p> </blockquote> <p> It's a "simple" change, passes testing on HEAD and it won't delay 1.34.1 even if we have to back it out again. </p> </blockquote> <p> Unless the change is not exactly as proposed in the summary of this ticket, it is a <strong>breaking</strong> change for users. I can't imagine any good excuse for doing that in a point release, and I object strongly to doing so. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Thomas Witt</dc:creator> <pubDate>Wed, 06 Jun 2007 00:01:13 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/979 https://svn.boost.org/trac10/ticket/979 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">operators.hpp.diff</span> </li> </ul> Ticket Thomas Witt Wed, 06 Jun 2007 00:04:56 GMT <link>https://svn.boost.org/trac10/ticket/979#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:9</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:8" title="Comment 8">dave</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:7" title="Comment 7">witt</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:5" title="Comment 5">dave</a>: </p> <blockquote class="citation"> <p> I can't see how this is appropriate for 1.34.1 </p> </blockquote> <p> It's a "simple" change, passes testing on HEAD and it won't delay 1.34.1 even if we have to back it out again. </p> </blockquote> <p> Unless the change is not exactly as proposed in the summary of this ticket, it is a <strong>breaking</strong> change for users. I can't imagine any good excuse for doing that in a point release, and I object strongly to doing so. </p> </blockquote> <p> Dave, I have attached the proposed patch. This may very well be my fault. I never intended to add a breaking change. Looking at the patch I still can't figure it out. What am I missing? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Thomas Witt</dc:creator> <pubDate>Wed, 06 Jun 2007 00:10:02 GMT</pubDate> <title>cc changed https://svn.boost.org/trac10/ticket/979#comment:10 https://svn.boost.org/trac10/ticket/979#comment:10 <ul> <li><strong>cc</strong> <span class="trac-author">witt@…</span> added </li> </ul> Ticket Dave Abrahams Wed, 06 Jun 2007 00:27:23 GMT <link>https://svn.boost.org/trac10/ticket/979#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:11</guid> <description> <p> Sorry, the mistake is mine. I didn't realize, from the example, which used no qualification and showed <code>empty_base</code> named in what is presumably user code, that <code>empty_base</code> was in <code>boost::detail</code>. As long as users aren't touching <code>empty_base</code> the patch is OK. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Thomas Witt</dc:creator> <pubDate>Wed, 06 Jun 2007 00:31:46 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:12 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:12</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:11" title="Comment 11">dave</a>: </p> <p> I always assumed everything in <code> boost::detail </code> is fair game. Should we be more conservative? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 06 Jun 2007 00:47:33 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:13</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:12" title="Comment 12">witt</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:11" title="Comment 11">dave</a>: </p> <p> I always assumed everything in <code> boost::detail </code> is fair game. </p> </blockquote> <p> Well, it should be... but occasionally you see stuff like this: </p> <p> <a href="http://www.boost.org/libs/serialization/doc/archive_reference.html">http://www.boost.org/libs/serialization/doc/archive_reference.html</a> <a href="http://www.boost.org/libs/serialization/doc/derivation.html">http://www.boost.org/libs/serialization/doc/derivation.html</a> </p> <blockquote class="citation"> <p> Should we be more conservative? </p> </blockquote> <p> I don't think so. Did <a class="ext-link" href="http://svn.boost.org/trac/boost/ticket/979#comment:11"><span class="icon">​</span>http://svn.boost.org/trac/boost/ticket/979#comment:11</a> lead you to think I would say otherwise. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Thomas Witt</dc:creator> <pubDate>Wed, 06 Jun 2007 00:57:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/979#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/979#comment:14</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:13" title="Comment 13">anonymous</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:12" title="Comment 12">witt</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/979#comment:11" title="Comment 11">dave</a>: </p> <p> I always assumed everything in <code> boost::detail </code> is fair game. </p> </blockquote> <p> Well, it should be... but occasionally you see stuff like this: </p> <p> <a href="http://www.boost.org/libs/serialization/doc/archive_reference.html">http://www.boost.org/libs/serialization/doc/archive_reference.html</a> <a href="http://www.boost.org/libs/serialization/doc/derivation.html">http://www.boost.org/libs/serialization/doc/derivation.html</a> </p> </blockquote> <p> Sigh! </p> <blockquote class="citation"> <blockquote class="citation"> <p> Should we be more conservative? </p> </blockquote> <p> I don't think so. Did <a class="ext-link" href="http://svn.boost.org/trac/boost/ticket/979#comment:11"><span class="icon">​</span>http://svn.boost.org/trac/boost/ticket/979#comment:11</a> lead you to think I would say otherwise. </p> </blockquote> <p> No, not really. I am just paranoid about misunderstandings with release issues ;-). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Daniel Frey</dc:creator> <pubDate>Wed, 06 Jun 2007 21:07:18 GMT</pubDate> <title>cc, status changed; resolution set https://svn.boost.org/trac10/ticket/979#comment:15 https://svn.boost.org/trac10/ticket/979#comment:15 <ul> <li><strong>cc</strong> <span class="trac-author">d.frey@…</span> added </li> <li><strong>status</strong> <span class="trac-field-old">reopened</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Applied patch to RC_1_34_0. Sorry Dave, I should have added the patch to the ticket from the very beginning. </p> Ticket