
On Wed, 14 Jan 2009 20:02:22 -0800 "Robert Ramey" <ramey@rrsd.com> wrote:
I'm having problems with the following code below from boost/serialization/export.hpp
compiling
BOOST_CLASS_EXPORT_GUID(final, "final")
results in the following error message on the gcc compilers.
error: too few template-parameter-lists
VC compilers don't complain about this. I've tried replacing
::boost::archive::detail::init_guid< T >::guid_initializer = \
with
::boost::archive::detail::init_guid< T >::guid_initializer< T> =\
But this doesn't help. Happy to get help from any C++ guru
Robert Ramey
template<typename T> class init_guid { static ::boost::archive::detail::guid_initializer<T> const & guid_initializer; }; } // namespace detail } // namespace archive } // namespace boost
#define BOOST_CLASS_EXPORT_GUID(T, K) \ ::boost::archive::detail::guid_initializer< T > const & \ ::boost::archive::detail::init_guid< T >::guid_initializer = \ ::boost::serialization::singleton< \ ::boost::archive::detail::guid_initializer< T > \
::get_mutable_instance().export_guid(K); \
#define BOOST_CLASS_EXPORT_GUID(T, K) \ template <typename T> \ ::boost::archive::detail::guid_initializer< T > const & \ ::boost::archive::detail::init_guid< T >::guid_initializer = \ ::boost::serialization::singleton< \ ::boost::archive::detail::guid_initializer< T > \
::get_mutable_instance().export_guid(K);
Simple oversight - you're missing the obvious: template <typename T> \ at the beginning of your macro. Cheers, -- Manfred 15 January, 2009