Merge commit '62e8601919faca57a0fa4be1a910458390450cc9' as 'third_party/variant'
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
|
||||
# Other implementations of variant and optional
|
||||
|
||||
These are some other implementations of `variant` and/or `optional` types.
|
||||
They are not necessarily compatible with this implementation. This is an
|
||||
incomplete list.
|
||||
|
||||
* [Boost Variant](http://www.boost.org/doc/libs/1_59_0/doc/html/variant.html) and [Boost Optional](http://www.boost.org/doc/libs/1_59_0/libs/optional/doc/html/index.html)
|
||||
* [Eggs Variant](http://eggs-cpp.github.io/variant/) by [Agustín Bergé](http://talesofcpp.fusionfenix.com/)
|
||||
* [anthonyw/variant](https://bitbucket.org/anthonyw/variant) (implementation of P0110R0)
|
||||
* [JasonL9000/cppcon14](https://github.com/JasonL9000/cppcon14)
|
||||
* [tomilov/variant](https://github.com/tomilov/variant)
|
||||
* [akrzemi1/Optional](https://github.com/akrzemi1/Optional)
|
||||
* [mpark/variant](https://github.com/mpark/variant)
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
|
||||
# Standards efforts
|
||||
|
||||
A `variant` type is on planned for inclusion in the C++ Standard, probably in
|
||||
C++17. Current working papers are (list extracted from [2015 working group
|
||||
papers](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/)):
|
||||
|
||||
* 2015-09-28: Variant design review. [P0086R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0086r0.pdf)
|
||||
* 2015-09-28: Variant: a type-safe union without undefined behavior (v2) [P0087R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0087r0.pdf)
|
||||
* 2015-09-27: Variant: a type-safe union that is rarely invalid (v5) [P0088R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0088r0.pdf)
|
||||
* 2015-09-24: Simply a Strong Variant [P0093R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0093r0.html)
|
||||
* 2015-09-24: Simply a Basic Variant [P0094R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0094r0.html)
|
||||
* 2015-09-24: The Case for a Language Based Variant [P0096R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0095r0.html)
|
||||
* 2015-09-25: Implementing the strong guarantee for variant<> assignment [P0110R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0110r0.html)
|
||||
* 2015-09-24: Homogeneous interface for variant, any and optional (Revision 1) [P0032R1](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0032r1.pdf)
|
||||
|
||||
Last state can be seen from
|
||||
[The Variant Saga: A happy ending?](https://isocpp.org/blog/2015/11/the-variant-saga-a-happy-ending).
|
||||
|
||||
The `optional` type is also on the way into the standard. The papers are:
|
||||
* 2013-10-03: A proposal to add a utility class to represent optional objects (Revision 5) [N3793](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3793.html)
|
||||
* 2014-01-18: Working Draft, Technical Specification on C++ Extensions for Library Fundamentals [N3848](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3848.html)
|
||||
|
||||
## Older Papers
|
||||
|
||||
* Older working drafts are: N4218 (rev 1), N4516 (rev 2), N4450 (rev 3), and [N4542](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4542.pdf) (rev 4). They have been split into P0086 (general design discussions) and P0087 and P0088 (containing two competing? specs).
|
||||
* 2015-07-28: Variant: Discriminated Union with Value Semantics [P0080R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0080r0.pdf) An alternative proposal to N4542.
|
||||
|
||||
Reference in New Issue
Block a user