Boost C++ Libraries: Ticket #11593: undocumented export problem https://svn.boost.org/trac10/ticket/11593 <p> when I started using the serialisation I had a problem with duplicated symbols being produced by BOOST_CLASS_EXPORT_GUID called twice from different compilation units. I have not used the macro as said in tutorial in the definition of class but thought the .h file will be a better place for it. </p> <p> I think it would be great if either one of those would happen: </p> <ul><li>the problem with duplicated guid if the BOOST_CLASS_EXPORT_GUID is called twice from different CU </li><li>the prevention mechanism would be incorporated in macro (for instance if the guid is registered with a same class, second macro is expanded into nothing) </li></ul><p> If the 2nd option is impossible if the documentation would explicitly say that such code: duplicate symbol <span class="underline">ZN5boost7archive6detail12extra_detail9init_guid is the result of registering class twice it could save some time with investigation. </span></p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11593 Trac 1.4.3 Robert Ramey Tue, 29 Sep 2015 06:51:43 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/11593#comment:1 https://svn.boost.org/trac10/ticket/11593#comment:1 <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">invalid</span> </li> </ul> <p> The use of BOOST_CLASS_EXPORT is no longer recommended. </p> <p> Use BOOST_CLASS_EXPORT_KEY and BOOST_CLASS_EXPORT_IMPLEMENT instead. These were invented specifically to address this problem. It's in the documentation. </p> Ticket