diff --git a/doc/variant2/changelog.adoc b/doc/variant2/changelog.adoc index 425ed7c..18d4b4a 100644 --- a/doc/variant2/changelog.adoc +++ b/doc/variant2/changelog.adoc @@ -8,6 +8,10 @@ https://www.boost.org/LICENSE_1_0.txt # Revision History :idprefix: changelog_ +## Changes in 1.79.0 + +* Added `operator<<` for `monostate`. + ## Changes in 1.78.0 * Added ``. diff --git a/doc/variant2/reference.adoc b/doc/variant2/reference.adoc index d9f2c9d..beede7b 100644 --- a/doc/variant2/reference.adoc +++ b/doc/variant2/reference.adoc @@ -144,12 +144,6 @@ template template constexpr bool operator>=(const variant& v, const variant& w); -// stream insertion (extension) - -template - std::basic_ostream& - operator<<( std::basic_ostream& os, variant const& v ); - // swap template @@ -176,6 +170,16 @@ constexpr bool operator>(monostate, monostate) noexcept { return false; } constexpr bool operator<=(monostate, monostate) noexcept { return true; } constexpr bool operator>=(monostate, monostate) noexcept { return true; } +// stream insertion (extension) + +template + std::basic_ostream& + operator<<( std::basic_ostream& os, variant const& v ); + +template + std::basic_ostream& + operator<<( std::basic_ostream& os, monostate const& v ); + // bad_variant_access class bad_variant_access; @@ -886,20 +890,6 @@ template Returns: :: `w \<= v`. -### Stream Insertion (extension) -``` -template - std::basic_ostream& - operator<<( std::basic_ostream& os, variant const& v ); -``` -[none] -* {blank} -+ -Requires: :: - `sizeof...(T) != 0`. -Returns: :: - `os << get(v)`, where `I` is `v.index()`. - ### swap ``` @@ -946,6 +936,33 @@ Remarks: :: If `R` is given explicitly, as in `visit_by_index`, the return of `Fi` to the corresponding variant alternatives must have the same return type for this deduction to succeed. +### Stream Insertion (extension) +``` +template + std::basic_ostream& + operator<<( std::basic_ostream& os, variant const& v ); +``` +[none] +* {blank} ++ +Requires: :: + `sizeof...(T) != 0`. +Returns: :: + `os << get(v)`, where `I` is `v.index()`. + +``` +template + std::basic_ostream& + operator<<( std::basic_ostream& os, monostate const& v ); +``` +[none] +* {blank} ++ +Effects: :: + `os << "monostate"`. +Returns: :: + `os`. + ### bad_variant_access ```