I’ve downloaded
recently the version Boost 1.34.1 and performed some tests on ours applications
integrating Boost components.
During theses tests, I’ve
tried to deserialize some XML archives generated w/
Boost 1.33.1 including some boost::optional<>
instances and I’ve observed that the Visual C++ 7.1 IDE emits run-time checks
in the load<boost::optional<>>() @ line
template<class Archive, class T>
void load(
Archive & ar,
boost::optional<T>
& t,
const
unsigned int /*version*/
){
bool tflag;
ar >> boost::serialization::make_nvp("initialized",
tflag);
if
(tflag){
unsigned int v;
if(3 < ar.get_library_version()){
ar >> make_nvp("item_version",
v);
}
detail::stack_construct<Archive, T> aux(ar, v);
^^^^^^^^^^^^^^^^^^^^^^^^
Here Run-Time Check Failure #3 - The variable 'v' is
being used without being defined.
ar >> boost::serialization::make_nvp("value",
aux.reference());
t.reset(aux.reference());
}
else
{
t.reset();
}
}
Is it possible to avoid
this run-time check by a preinitialisation of the
local variable “v”? Is it a Bug?
Best regards,
Used Configurations:
Windows
XP
Boost 1.34.1
(through Boost Installer w/ DLL libraries)
Marc Viala