[Boost-bugs] [Boost C++ Libraries] #6899: boost serialization calls wrong guild()

Subject: [Boost-bugs] [Boost C++ Libraries] #6899: boost serialization calls wrong guild()
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-05-14 16:44:56


#6899: boost serialization calls wrong guild()
-------------------------------------------+--------------------------------
 Reporter: Xiaolong <xwu622@…> | Owner: ramey
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
  Version: Boost 1.44.0 | Severity: Problem
 Keywords: guid |
-------------------------------------------+--------------------------------
 I have a serializaiton program that serializes over 600 classes. During
 the singleton initialization, the program should call the guid() function
 defined in macro BOOST_CLASS_EXPORT_GUID in export.hpp. But about 40% of
 class singletons call the dummy guild() function defined in
 extened_type_info.hpp:

 template<class T>[[BR]]
 struct guid_defined : boost::mpl::false_ {};[[BR]]
 template<class T>[[BR]]
 inline const char * guid(){[[BR]] return NULL;[[BR]]}

 This causes m_key=NULL, and later causes "unregistered class" error for
 multiple inheritence classes.

 The following two lines are ajacent in the same file. The first calls the
 dummy guid(), the second calls the macro guid().[[BR]]
 BOOST_CLASS_EXPORT_GUID(CffCDOQuote, "CffCDOQuote")[[BR]]
 BOOST_CLASS_EXPORT_GUID(boost::shared_ptr< CffCDOQuote >,
 "CffCDOQuotePtr")

 I am working in Windows 7, VC++ 9.0 and Boost 1.44.0.

 I tried all possible project settings of optimization and runtime, got no
 luck.

 It is difficult to create a simple test case. I will be happy to provide
 more info if needed.

 Thanks

 Xiaolong

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6899>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC