diff --git a/include/boost/pending/property.hpp b/include/boost/pending/property.hpp index 148f9169..25cc1cea 100644 --- a/include/boost/pending/property.hpp +++ b/include/boost/pending/property.hpp @@ -7,11 +7,14 @@ #define BOOST_PROPERTY_HPP #include + +#if ! BOOST_WORKAROUND (__GNUC__, < 3) // Wierd, I get compilation errors if the following include is // removed, but it shouldn't be needed. Some kind of strange // include dependency in the serialization library. #include #include +#endif namespace boost { @@ -22,8 +25,10 @@ namespace boost { enum { num = 0 }; typedef void kind; +#if ! BOOST_WORKAROUND (__GNUC__, < 3) template void serialize(Archive & ar, const unsigned int version) { } +#endif }; template struct property : public Base { @@ -38,11 +43,15 @@ namespace boost { property(const T& v) : m_value(v) { } property(const T& v, const Base& b) : Base(b), m_value(v) { } // copy constructor and assignment operator will be generated by compiler + +#if ! BOOST_WORKAROUND (__GNUC__, < 3) template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); ar & m_value; } +#endif + T m_value; };