c++11 - serialize temporary into boost archive -


the following not possible boost output archive:

int foo(){    return 4; }  ar << static_cast<unsigned int>(foo()); 

is there alternative without out creating local temporary x=foo().

and why underlying archive operator <<(t & t) not const reference , output archive such above work?

this seems work, , think this why:

... detect such cases, output archive operators expect passed const reference arguments.

it seems worth noting in example ar << foo(); not work either (i.e. doesn't have cast).

#include <fstream> #include <iostream>  #include <boost/serialization/serialization.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp>  unsigned int foo(){    return 4; }  int main() {     {     std::ofstream outputstream("somefile.txt");     boost::archive::text_oarchive outputarchive(outputstream);     outputarchive << static_cast<const int&>(foo());     }      std::ifstream inputstream("somefile.txt");     boost::archive::text_iarchive inputarchive(inputstream);      int readback;     inputarchive >> readback;      std::cout << "read back: " << readback << std::endl;     return 0; } 

Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -