My attempt to compile failed. See below.

On 03/01/2013 4:34 PM, Daniel James wrote:
On 3 January 2013 19:25, Marshall Clow <mclow.lists@gmail.com> wrote:
Release candidate files for 1.53.0 beta 1 are available at
http://boost.cowic.de/rc/
I've put it on the site, the documentation is linked from the release notes:

http://www.boost.org/users/history/version_1_53_0.html
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
When I tried to compile this release candidate the compilation failed:

libs/serialization/src/archive_exception.cpp: In constructor ‘boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, const char*, const char*)’:
libs/serialization/src/archive_exception.cpp:33: error: ‘m_msg’ was not declared in this scope
libs/serialization/src/archive_exception.cpp: In member function ‘virtual const char* boost::archive::archive_exception::what() const’:
libs/serialization/src/archive_exception.cpp:106: error: ‘m_msg’ was not declared in this scope
libs/serialization/src/xml_archive_exception.cpp: In constructor ‘boost::archive::xml_archive_exception::xml_archive_exception(boost::archive::xml_archive_exception::exception_code, const char*, const char*)’:
libs/serialization/src/xml_archive_exception.cpp:34: error: ‘m_msg’ was not declared in this scope

Currently I have no problems with 1.49.0.

The change that is causing the problem seems to be boost/archive/archive_exception.hpp.  In a quick comparison, it appears that char m_buffer[128] is supposed to replace std::string m_msg.

diff -u boost_1_49_0/./boost/archive/archive_exception.hpp boost_1_53_0_beta1/./boost/archive/archive_exception.hpp
--- boost_1_49_0/./boost/archive/archive_exception.hpp  2011-01-19 13:33:55.000000000 -0400
+++ boost_1_53_0_beta1/./boost/archive/archive_exception.hpp    2012-12-24 14:23:49.000000000 -0400
@@ -43,6 +43,8 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) archive_exception :
     public virtual std::exception
 {
+protected:
+    char m_buffer[128];
 public:
     typedef enum {
         no_exception,       // initialized without code
@@ -74,8 +76,6 @@
                             // type has been instantiated in more than one module.
         output_stream_error // error on input stream
     } exception_code;
-protected:
-    std::string m_msg;
 public:
     exception_code code;
     archive_exception(
@@ -83,9 +83,11 @@
         const char * e1 = NULL,
         const char * e2 = NULL
     );
-    ~archive_exception() throw ();
-    virtual const char *what( ) const throw();
+    virtual ~archive_exception() throw();
+    virtual const char *what() const throw();
 protected:
+    unsigned int
+    append(unsigned int l, const char * a);
     archive_exception();
 };

--
 



Shane Turner

Senior Software Developer
phone +1 (902) 406–8375  x1008
email Shane.Turner@NewPace.ca
aim/msn Shane.Turner@NewPace.ca
skype saturnjct