
On Aug 9, 2006, at 10:17 PM, Thorsten Ottosen wrote:
Stephen Hewitt <shewitt.au <at> gmail.com> writes:
I originally posted this message in Boost-users but I think Boost- developers is probably more suitable. It regards a non-standard extension which I think is being used in Boost.Serialization. I have mailed the author (and Boost-users) but he feels the construct is legal.
I think you have to change it a little to make it legal:
The "make_nvp" function looks like as follows: [CODE] nvp<T> make_nvp(const char * name, T & t){ return nvp<T>(name, t); } [/CODE]
If the return type is "const vnp<T>" it should work.
I'm wondering why the orginal code compiles on other compilers.
Actually the code in the CVS is: template<class T> inline #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING const #endif nvp<T> make_nvp(const char * name, T & t){ return nvp<T>(name, t); } The const is omitted only on some nonconforming compilers such as MSVC 6. Matthias