diff --git a/doc/20_reference.qbk b/doc/20_reference.qbk
index 9b14267f..cba3bac9 100644
--- a/doc/20_reference.qbk
+++ b/doc/20_reference.qbk
@@ -73,13 +73,11 @@
T const& operator *() const& ; ``[link reference_optional_operator_asterisk __GO_TO__]``
T& operator *() & ; ``[link reference_optional_operator_asterisk __GO_TO__]``
- T operator *() && ; ``[link reference_optional_operator_asterisk_move __GO_TO__]``
- T operator *() const&& ; ``[link reference_optional_operator_asterisk_move __GO_TO__]``
+ T&& operator *() && ; ``[link reference_optional_operator_asterisk_move __GO_TO__]``
T const& value() const& ; ``[link reference_optional_value __GO_TO__]``
T& value() & ; ``[link reference_optional_value __GO_TO__]``
- T value() && ; ``[link reference_optional_value_move __GO_TO__]``
- T value() const&& ; ``[link reference_optional_value_move __GO_TO__]``
+ T&& value() && ; ``[link reference_optional_value_move __GO_TO__]``
template
-
T optional<T- (not a ref)>::operator*() &&;-
-
T optional<T- (not a ref)>::operator*() const&&;+T&& + optional<T(not a ref)>::operator*() &&;
return std::move(*val);.
T
- is not MoveConstructible,
- the program is ill-formed.
- BOOST_ASSERT().
- On GCC compiler the second overload is not present, as this compiler
- incorrectly implements binding of references to const prvalues. On compilers
- that do not support ref-qualifiers on member functions both these overloads
- are not present.
+ On compilers that do not support ref-qualifiers on member functions this
+ overload is not present.
@@ -1377,11 +1366,6 @@
T &
optional<T&>::operator*() && ;
--
T & - optional<T&>::operator*() const&& - ;-
*this is initialized
@@ -1396,11 +1380,9 @@ BOOST_ASSERT().
- On GCC compiler the fourth overload is not present, as this compiler
- incorrectly implements binding of references to const prvalues. On compilers
- that do not support ref-qualifiers on member functions these four overloads
- are replaced with the classical two: a const
- and non-const member functions.
+ On compilers that do not support ref-qualifiers on member functions these
+ three overloads are replaced with the classical two: a const and non-const
+ member functions.
-
T optional<T>::value() && - ;-
-
T optional<T>::value() const&& ;+T&& + optional<T>::value() && ;
T
- is not MoveConstructible,
- the program is ill-formed.
- diff --git a/doc/html/index.html b/doc/html/index.html index fc616b76..9b487112 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -133,7 +133,7 @@
Last revised: June 27, 2014 at 22:17:04 GMT |
+Last revised: July 10, 2014 at 11:41:49 GMT |
T& operator *() & ;
- T operator *() && ;
- T operator *() const&& ;
+ T&& operator *() && ;
T const& value() const& ;
T& value() & ;
- T value() && ;
- T value() const&& ;
+ T&& value() && ;
template<class U> T value_or( U && v ) const& ;
template<class U> T value_or( U && v ) && ;
diff --git a/include/boost/optional/optional.hpp b/include/boost/optional/optional.hpp
index 8d6971f1..07c4bd39 100644
--- a/include/boost/optional/optional.hpp
+++ b/include/boost/optional/optional.hpp
@@ -1005,12 +1005,9 @@ class optional : public optional_detail::optional_base