* develop: (108 commits)
removed unordered tests
tests have been taken over by developers of boost unordered
uploading changes regarding unordered ... uploading tweaks to CMakeLists.txt so accommodate static linking
imported/implemented boost/serialization/variant and test_variant
Remove serialization support from Boost.Unordered containers
Fix invalid vptr access in extended_type_info_no_rtti constructor
Fix invalid downcast in ~xml_oarchive_impl
altered boost optional to depend only public interface functions declared in std::optional. adjusted test_optional to test serialization of both boost::optional and std::optional
Revert "Add serialization for std::optional"
fix new requirement - if assigment is not defaulted, copy can't be either
Fix clang-cl regression introduced by #282
correction in previous merge
Remove debug output from util/test.jam
Fix Sub::operator== signature to avoid ambiguity errors in C++20
Remove C++03 from GHA, because Variant and LexicalCast no longer compile under C++03
incremement archive version number fix PR 274 fix PR 283
committing most pending PRs
Replace static_cast with reinterpet_cast in interface_oarchive
Update xml_escape::fill() to default assign bstart, bend to an empty string
Use the first instance of bos during serialization (for the case when there are multiple instances)
...
imported/implemented boost/serialization/variant now contains code for serialization of boost::variant, boost::variant2 and std::variant. Care has been taken to depend only on the public interfaces of these types. Hence, it is reasonable to hope that the archives are compatible in that one type could be saved and subsequently loaded into a compatible type. Hopefully this will be useful in some way. At a minimum it minimizes code duplication.
Initializing a base class in the initializer list with a member function in the derived is invalid in gcc as the object isn't fully-formed
We instead just inline the body of `get_key()` which avoids the issue.
The destructor of the xml_oarchive_impl winds up calling `this->windup()` which in turn invokes `this->This()->...` which essentially static_cast's to a Archive, which by this point in time is long-since destructed.
By simply inlining the implementation of windup(), we avoid the UB and minimize the required code changes