Boost C++ Libraries: Ticket #6412: Use attribute names with underscores for GCC https://svn.boost.org/trac10/ticket/6412 <p> ... which should prevent accidental interactions between user-defined macros and boost internals. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/6412 Trac 1.4.3 Petr Machata <pmachata@…> Mon, 16 Jan 2012 23:05:23 GMT attachment set https://svn.boost.org/trac10/ticket/6412 https://svn.boost.org/trac10/ticket/6412 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost-interprocess.patch</span> </li> </ul> Ticket Ion Gaztañaga Wed, 18 Jan 2012 20:53:44 GMT <link>https://svn.boost.org/trac10/ticket/6412#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/6412#comment:1</guid> <description> <p> Why is the underscore version preferred? I can see no clue in GCC documentation and it might affect other compilers that support GCC syntax. </p> </description> <category>Ticket</category> </item> <item> <author>Petr Machata <pmachata@…></author> <pubDate>Fri, 20 Jan 2012 16:33:59 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/6412#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/6412#comment:2</guid> <description> <p> Because #defining noinline in user code is legitimate, but #defining <span class="underline">noinline</span> is not, because such names are reserved. So it should be less likely that attributes with underscores interact with user code. </p> <p> The documentation curiously doesn't mention this. But it's used by system headers as well as boost in a couple places. I tried it as far back as 3.3 (the oldest that I have around), and it seems well supported. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Wed, 01 Feb 2012 21:57:03 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/6412#comment:3 https://svn.boost.org/trac10/ticket/6412#comment:3 <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> Fixed in trunka and release branches. </p> Ticket