Visual C++ has a “Microsoft extension” that allows it to take a non-const reference to a temporary (and boost serialization uses non-const references whether you are serializing in or out).
If you compile with Microsoft extensions enabled: /Ze the following code will compile.
If you compile without Microsoft extensions enabled: /Za the following code will not compile.
struct obj_t{};
void foo( obj_t & );
obj_t bar();
void main()
{
foo( bar() );
}
From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Paul Blampspied
Sent: Saturday, August 02, 2014 4:13 PM
To: boost-users
Subject: Re: [Boost-users] [serialization] Please help me solve this compile error.
Thanks very much. That is exactly what the problem was. It used to work at one time though. I think the C++ standard may have changed - or maybe it was in Visual C++ before I switched to a Linux environment.
many thanks.
On Wed, Jul 30, 2014 at 2:48 PM, Bjorn Reese