1## Version 0.2.2
2
3* Replace `TYPE_SAFE_ARITHMETIC_UB` CMake option by `TYPE_SAFE_ARITHMETIC_POLICY` to enable checked arithmetic by default (#106)
4* Be less strict in the signed/unsigned conversion of `integer` (#104)
5* Various bugfixes (#97, #108, #111, #115)
6
7## Version 0.2.1
8
9This release is mainly bugfixes:
10
11* Added `explicit_bool` strong typedef
12* Fixed forwarding bug in `with()` of `array_ref`
13* Silenced some warnings
14* Improved CMake configuration
15
16## Version 0.2
17
18This release took a long time, so here are just the most important changes.
19
20* Added `downcast()` utility function
21* Fixed GCC 4.8 and clang support
22* Improved documentation
23* Improved CMake and added Conan support
24* Hashing support for `boolean`, `integer`, `floating_point` and `strong_typedef`
25
26## Vocabulary Types
27
28* Added `object_ref<T>` and and `xvalue_ref<T>`
29* Added `array_ref<T>`
30* Added `function_ref<T>`
31* Added `flag_set<T>`
32* Breaking: renamed `distance_t` to `difference_t`
33* Improved `index_t` and `difference_t`
34
35### Optional & Variant:
36
37* Breaking: `optional` now auto-unwraps, removed `unwrap()` function
38* Breaking: `optional_ref` creation function now `opt_ref()` instead of `ref()`, but more than before
39* Breaking: Removed `optional_ref<T>::value_or()`
40* Added `optional_for<T>` utility typedef
41* Added support for additional parameters to `with()` and make it more optimizer friendly
42* Added `with()` for `tagged_union`
43* Improved map functions: additional arguments, member function pointers, `void` returning function objects
44* Bugfix for trivial variant copy/move/destroy
45
46### Type Safe Building Blocks:
47
48* Added pointer like access to `constrained_type`
49* Added `constrained_ref`
50* Added `throwing_verifier` for `constrained_ref` along with `sanitize()` helper functions
51* Added literal operator to create a static bound of `bounded_type`
52* Added bitwise operators for `strong_typedef`
53* Added `constexpr` support to `strong_typedef`
54* Added support for mixed operators in `strong_typedef`
55* Made `constrained_type` `constexpr`
56* Fixed strong typedef `get()` for rvalues
57
58
59Thanks to @johelgp, @xtofl, @nicola-gigante, @BRevzin, @verri, @lisongmin, @Manu343726, @MandarJKulkarni, @gerboengels.
60