Strict Variant Versions Save

A realtime/embedded-friendly C++11 variant type which is never empty and prevents undesirable implicit conversions

v0.5

5 years ago
  • Fix sign-conversion warnings that appeared when we deployed this at work

v0.4

7 years ago
  • Add operator = (T &&) ctor and friends (I finally became convinced of the wisdom of this)
  • Refactor type-changing assignment code and visitors to be better organized
  • Refactor initialzation to avoid extra move / copy, fix warnings on msvc
  • Almost total rewrite of "overview" part of documentation

v0.3

7 years ago
  • Implement swappable for variant
  • Refactor operator == so that the implementation is symmetric
  • Refactor safely_constructible trait, and document the numerous customization points that now exist
  • Add emplace-by-index method, fix corner case behavior of emplace
  • Consolidate private visitors of variant class template
  • Refactor implementation of apply_visitor, make it noexcept correct, also add C++17 visit method syntax
  • Remove some cruft from recursive_wrapper

v0.2

7 years ago
  • Modified the forwarding-reference constructor, to make it better behaved and easier to customize dominates type trait, in addition to safely_constructible, are now used, and e.g. long long is not considered necessarily a worse match for int than unsigned long.
  • Added much documentation and tests
  • Still not v1.0

v0.1

7 years ago

This is a beta-quality release. It is essentially a refactor of a much smaller library (see initial commit). That library was stable, having been factored out from another large project.

However, since then a good deal of the code has been rewritten to provide a much more powerful and useful container. This development cycle has seen the library take on a more full form.

Plan is to tick to 1.0 after testing over an extended period of time within the larger project, and pending user feedback / bug reports.