I would not expect this to work.
const char* const_temp = temp.c_str( );
provides a cont char * - but this pointer is only temporary and becomes
invalid when the function creating it returns. Hence the run time error.
Assuming that dynamically assigning a tag name is a good idea (I'll reserver
judgement on this for now), I don't think that nvp is the right vehicle to
try to do this. I would guess that you'd have to make your own "wrapper"
which makes a copy of the "tag". The nvp specifically avoids doing this for
efficiency reasons
Robert Ramey
"Hammond, John (UK New Malden)" wrote in
message
news:69E82C655BA624438EC192FB2D5B54DB023C76D1@GLKMS2100.GREENLNK.NET...
Hello,
I am hoping someone could answer a question I have regarding the
make_nvp(..) function of the Serialization library.
I am attempting to serialize a number of objects within a loop, and the name
of the name-value-pair is to be assigned dynamically depending on some
values taken from within the object that is to be serialized. I am currently
performing the actions below:
my_obj = GetMyObj(..);
std::string temp = str( boost::format("x:%1% y:%2%") % _x % _y );
const char* const_temp = temp.c_str( );
ar & boost::serialization::make_nvp(const_temp, my_obj);
This code compiles but will cause an exception on make_nvp. As far as I can
tell, I am providing the function with the const char* that it requires, so
am very confused as to why it is not performing as expected.
Any help with this would be greatly appreciated.
John Hammond
********************************************************************
This email and any attachments are confidential to the intended
recipient and may also be privileged. If you are not the intended
recipient please delete it from your system and notify the sender.
You should not copy it or use it for any purpose nor disclose or
distribute its contents to any other person.
********************************************************************
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users