boostorg / boostorg/serialization
Boost serialization (bug?) issue with MSVC, with vector<shared_ptr> in several libraries
- Dominant language
- C++
- Stars
- 134
- Forks
- 148
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 5
Description
We use boost serialization in ours projects, both on linux (gcc) and Windows. We encounter a problem only on Windows (for "every" versions of Windows (7 and 10) and of MSVC: Visual 2010 and 2015, ie. MSVC++ 10.0 _MSC_VER == 1600 or MSVC++ 14.0 _MSC_VER == 1900).
**Here is the problem summarized**: When I serialize a class
- which have base class
- and have 2 vector of shared_ptr of ClassB, with the same contents, and B inherits from the same base class
the serialization works, but the deserialization doesn't ("input stream error").

It's very strange:
- if I remove the base class, it works.
- if I inline the serialization code (empty function) of the base class, it works.
- if the 2 vectors don't have the same content, it works !!
- if I register the ClassBase in the serialize method of ClassTest, it works. I.e.:
```
// in ClassTest:
template
void serialize(Archive & ar, const unsigned int version) {
ar.template register_type();
...
}
```
**Some details**
**When it works** on linux, and when it works on Windows with ClassBase type registration in the archive, we have the same xml output.
It's worth noting that:
- boost_serialization is version 17 on Windows and 9 on linux (I didn't tried to update boost on linux yet).
- On BaseClass xml tag, the tracking_level="1", so we have object_id.
**And when it doesn't work** (once again: the serialization of ClassTest is OK, but cannot deserialized "input stream error"):
- The main difference is in the serialization of ClassTest: the ClassBase part has no tracking_level.
- However it's not the only cause, because if the vectors are differents (same 2 first items, and a third item in one vector), tracking_level of ClassBase in ClassTest part is "0".
I've posted a visual studio solution [here](https://1drv.ms/u/s!Aoy4ax0S3ZS5gkxv1UIvRUd32oVO?e=ACVi4c).
Thanks a lot for your help. And if any clarification is needed, I'm available of course !
N.B.: I compiled with the last development version of boost serialization, the issue remains.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.