Hi all,
I'm having trouble with Boost's serialization library that I'm trying
to integrate with an existing class hierarchy that used MFC toolkit as
the archiver.
It seems that when a serializable class defines a specialized save (or
load or serialize for that matter) in addition to the generic method,
the serialization library gets confused and ends up not identify
properly that the hierarchy of serializable classes uses multiple
inheritance and in particular diamond-shaped inheritance.
I've reproduced the problem using the test_diamond code example
provided with Boost 1.43 using MS VC 9.0 by adding a save method
specialized for archive::text_oarchive to the derived1 class defined
in test_diamond.cpp. The following diff shows the implementation of
this specialized method:
-----8<-----
--- ../temp/boost_1_43_0/boost_1_43_0/libs/serialization/test/test_diamond.cpp Wed
Jul 14 11:28:02 2010
+++ ../serializationProto.cpp Wed Jul 28 13:05:47 2010
@@ -95,6 +97,13 @@
ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
}
+ template<>
+ void save(boost::archive::text_oarchive &ar, const unsigned int i) const
+ {
+ std::cout << "Saving (Text) derived1\n";
+ ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+ }
+
template<class Archive>
void load(Archive & ar, const unsigned int /* file_version */)
{
@@ -122,6 +131,7 @@
}
BOOST_SERIALIZATION_SPLIT_MEMBER()
+
};
class final : public derived1, public derived2 {
@@ -202,3 +212,219 @@
return EXIT_SUCCESS;
}
----->8-----
Adding the following function definition to will result in an access
violation (see call stack bellow) in access.hpp @ line 136.
Any idea as to what is intrinsically wrong with code or how to fix
this issue is most welcome.
Call stack:
> serializationProtoArchiversWrappers.exe!boost::serialization::access::cast_reference<base const ,derived2 const >(const derived2 & u={...}) Line 136 + 0x1a bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::base_object<base,derived2
const >(const derived2 & d={...}) Line 105 + 0x9 bytes C++
serializationProtoArchiversWrappers.exe!derived2::save<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int __formal=0) Line 134 + 0x9 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::member_save<boost::archive::text_oarchive,derived2
const >(boost::archive::text_oarchive & ar={...}, const derived2 &
t={...}, const unsigned int file_version=0) Line 94 C++
serializationProtoArchiversWrappers.exe!boost::serialization::detail::member_saver<boost::archive::text_oarchive,derived2>::invoke(boost::archive::text_oarchive
& ar={...}, const derived2 & t={...}, const unsigned int
file_version=0) Line 43 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::split_member<boost::archive::text_oarchive,derived2>(boost::archive::text_oarchive
& ar={...}, derived2 & t={...}, const unsigned int file_version=0)
Line 69 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!derived2::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int file_version=0) Line 144 + 0x34
bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::serialize<boost::archive::text_oarchive,derived2>(boost::archive::text_oarchive
& ar={...}, derived2 & t={...}, const unsigned int file_version=0)
Line 119 C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize<boost::archive::text_oarchive,derived2>(boost::archive::text_oarchive
& ar={...}, derived2 & t={...}, const unsigned int file_version=0)
Line 74 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize_adl<boost::archive::text_oarchive,derived2>(boost::archive::text_oarchive
& ar={...}, derived2 & t={...}, const unsigned int file_version=0)
Line 133 + 0x18 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::oserializer<boost::archive::text_oarchive,derived2>::save_object_data(boost::archive::detail::basic_oarchive
& ar={...}, const void * x=0x0034de3c) Line 152 + 0x3e bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive_impl::save_object(boost::archive::detail::basic_oarchive
& ar={...}, const void * t=0x0034de3c, const
boost::archive::detail::basic_oserializer & bos={...}) Line 285 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive::save_object(const
void * x=0x0034de3c, const boost::archive::detail::basic_oserializer &
bos={...}) Line 434 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_standard::invoke<derived2>(boost::archive::text_oarchive
& ar={...}, const derived2 & t={...}) Line 259 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::invoke<derived2>(boost::archive::text_oarchive
& ar={...}, const derived2 & t={...}) Line 308 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,derived2
const >(boost::archive::text_oarchive & ar={...}, const derived2 &
t={...}) Line 525 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<derived2
const >(const derived2 & t={...}, int __formal=0) Line 69 + 0x15
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<derived2
const >(const derived2 & t={...}, int __formal=0) Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<derived2
const >(const derived2 & t={...}) Line 64 C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<derived2
const >::save<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int __formal=0) Line 80 C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::member_save<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 94 C++
serializationProtoArchiversWrappers.exe!boost::serialization::detail::member_saver<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > >::invoke(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 43 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::split_member<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 69 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<derived2
const >::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int file_version=0) Line 89 + 0x34
bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::serialize<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 119 C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 74 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize_adl<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<derived2 const > & t={...}, const unsigned
int file_version=0) Line 133 + 0x18 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_only::invoke<boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<derived2 const > & t={...}) Line 245 + 0xf
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::invoke<boost::serialization::nvp<derived2
const > >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<derived2 const > & t={...}) Line 308 + 0xd
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,boost::serialization::nvp<derived2
const > const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<derived2 const > & t={...}) Line 525 + 0xd
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<derived2
const > const >(const boost::serialization::nvp<derived2 const > &
t={...}, int __formal=0) Line 69 + 0x15 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<derived2
const > const >(const boost::serialization::nvp<derived2 const > &
t={...}, int __formal=0) Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<boost::serialization::nvp<derived2
const > const >(const boost::serialization::nvp<derived2 const > &
t={...}) Line 64 C++
serializationProtoArchiversWrappers.exe!final::save<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int __formal=0) Line 159 C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::member_save<boost::archive::text_oarchive,final
const >(boost::archive::text_oarchive & ar={...}, const final &
t={...}, const unsigned int file_version=0) Line 94 C++
serializationProtoArchiversWrappers.exe!boost::serialization::detail::member_saver<boost::archive::text_oarchive,final>::invoke(boost::archive::text_oarchive
& ar={...}, const final & t={...}, const unsigned int file_version=0)
Line 43 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::split_member<boost::archive::text_oarchive,final>(boost::archive::text_oarchive
& ar={...}, final & t={...}, const unsigned int file_version=0) Line
69 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!final::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int file_version=0) Line 169 + 0x34
bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::serialize<boost::archive::text_oarchive,final>(boost::archive::text_oarchive
& ar={...}, final & t={...}, const unsigned int file_version=0) Line
119 C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize<boost::archive::text_oarchive,final>(boost::archive::text_oarchive
& ar={...}, final & t={...}, const unsigned int file_version=0) Line
74 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize_adl<boost::archive::text_oarchive,final>(boost::archive::text_oarchive
& ar={...}, final & t={...}, const unsigned int file_version=0) Line
133 + 0x18 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::oserializer<boost::archive::text_oarchive,final>::save_object_data(boost::archive::detail::basic_oarchive
& ar={...}, const void * x=0x0034de38) Line 152 + 0x3e bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive_impl::save_object(boost::archive::detail::basic_oarchive
& ar={...}, const void * t=0x0034de38, const
boost::archive::detail::basic_oserializer & bos={...}) Line 265 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive::save_object(const
void * x=0x0034de38, const boost::archive::detail::basic_oserializer &
bos={...}) Line 434 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_standard::invoke<final>(boost::archive::text_oarchive
& ar={...}, const final & t={...}) Line 259 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::invoke<final>(boost::archive::text_oarchive
& ar={...}, const final & t={...}) Line 308 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,final
const >(boost::archive::text_oarchive & ar={...}, const final &
t={...}) Line 525 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<final
const >(const final & t={...}, int __formal=0) Line 69 + 0x15
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<final
const >(const final & t={...}, int __formal=0) Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<final
const >(const final & t={...}) Line 64 C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<final>::save<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int __formal=0) Line 80 C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::member_save<boost::archive::text_oarchive,boost::serialization::nvp<final>
const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 94 C++
serializationProtoArchiversWrappers.exe!boost::serialization::detail::member_saver<boost::archive::text_oarchive,boost::serialization::nvp<final>
>::invoke(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 43 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::split_member<boost::archive::text_oarchive,boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 69 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<final>::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int file_version=0) Line 89 + 0x34
bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::serialize<boost::archive::text_oarchive,boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 119 C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize<boost::archive::text_oarchive,boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 74 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize_adl<boost::archive::text_oarchive,boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<final> & t={...}, const unsigned int
file_version=0) Line 133 + 0x18 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_only::invoke<boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<final> & t={...}) Line 245 + 0xf bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::invoke<boost::serialization::nvp<final>
>(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<final> & t={...}) Line 308 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,boost::serialization::nvp<final>
const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<final> & t={...}) Line 525 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<final>
const >(const boost::serialization::nvp<final> & t={...}, int
__formal=0) Line 69 + 0x15 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<final>
const >(const boost::serialization::nvp<final> & t={...}, int
__formal=0) Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<boost::serialization::nvp<final>
const >(const boost::serialization::nvp<final> & t={...}) Line 64 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::pointer_oserializer<boost::archive::text_oarchive,final>::save_object_ptr(boost::archive::detail::basic_oarchive
& ar={...}, const void * x=0x0034de38) Line 202 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive_impl::save_pointer(boost::archive::detail::basic_oarchive
& ar={...}, const void * t=0x0034de38, const
boost::archive::detail::basic_pointer_oserializer *
bpos_ptr=0x005967c8) Line 403 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::basic_oarchive::save_pointer(const
void * t=0x0034de38, const
boost::archive::detail::basic_pointer_oserializer *
bpos_ptr=0x005967c8) Line 442 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_pointer_type<boost::archive::text_oarchive>::polymorphic::save<base>(boost::archive::text_oarchive
& ar={...}, base & t={...}) Line 445 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_pointer_type<boost::archive::text_oarchive>::save<base>(boost::archive::text_oarchive
& ar={...}, const base & t={...}) Line 460 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_pointer_type<boost::archive::text_oarchive>::invoke<base
const *>(boost::archive::text_oarchive & ar={...}, const base * const
t=0x0034de38) Line 473 + 0xd bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,base
const * const>(boost::archive::text_oarchive & ar={...}, const base *
const & t=0x0034de38) Line 525 + 0xf bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<base
const * const>(const base * const & t=0x0034de38, int __formal=0)
Line 69 + 0x15 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<base
const * const>(const base * const & t=0x0034de38, int __formal=0)
Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<base
const * const>(const base * const & t=0x0034de38) Line 64 C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<base
const *>::save<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int __formal=0) Line 80 C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::member_save<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 94 C++
serializationProtoArchiversWrappers.exe!boost::serialization::detail::member_saver<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> >::invoke(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 43 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::split_member<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 69 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::nvp<base
const *>::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive
& ar={...}, const unsigned int file_version=0) Line 89 + 0x34
bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::access::serialize<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 119 C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 74 + 0x11 bytes C++
serializationProtoArchiversWrappers.exe!boost::serialization::serialize_adl<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...},
boost::serialization::nvp<base const *> & t={...}, const unsigned int
file_version=0) Line 133 + 0x18 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_only::invoke<boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<base const *> & t={...}) Line 245 + 0xf
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::invoke<boost::serialization::nvp<base
const *> >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<base const *> & t={...}) Line 308 + 0xd
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::save<boost::archive::text_oarchive,boost::serialization::nvp<base
const *> const >(boost::archive::text_oarchive & ar={...}, const
boost::serialization::nvp<base const *> & t={...}) Line 525 + 0xd
bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<base
const *> const >(const boost::serialization::nvp<base const *> &
t={...}, int __formal=0) Line 69 + 0x15 bytes C++
serializationProtoArchiversWrappers.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::save_override<boost::serialization::nvp<base
const *> const >(const boost::serialization::nvp<base const *> &
t={...}, int __formal=0) Line 81 C++
serializationProtoArchiversWrappers.exe!boost::archive::detail::interface_oarchive<boost::archive::text_oarchive>::operator<<<boost::serialization::nvp<base
const *> const >(const boost::serialization::nvp<base const *> &
t={...}) Line 64 C++
serializationProtoArchiversWrappers.exe!test_main(int __formal=1,
int __formal=1) Line 210 C++
serializationProtoArchiversWrappers.exe!main(int argc=1, char * *
argv=0x0034e198) Line 180 + 0xd bytes C++
--
Robert Bigaignon