diff --git a/doc/20_reference.qbk b/doc/20_reference.qbk
index 513a72c..069789a 100644
--- a/doc/20_reference.qbk
+++ b/doc/20_reference.qbk
@@ -600,18 +600,17 @@ __SPACE__
[: `optional& optional
optional
to an optional
.
+ Requires: T
+ is CopyConstructible
and CopyAssignable
.
rhs
- is initialized, *this
- is initialized and its value is a copy of the value
- of rhs
; else *this
- is uninitialized.
+ Effects:
+ !*this
+ && !rhs
no effect, otherwise
+ bool(*this)
+ && !rhs
, destroys the contained value
+ by calling val->T::~T()
, otherwise
+ !*this
+ && bool(rhs)
, initializes the contained value
+ as if direct-initializing an object of type T
+ with *rhs
,
+ otherwise
+ bool(*this)
+ && bool(rhs)
) assigns *rhs
to the contained value.
+ T::operator( T const&)
- or T::T( T const& )
- throws.
+ Returns: *this
;
*this
and rhs
- are initially initialized, T
's
- assignment operator is used. If *this
is initially initialized but rhs
is uninitialized, T
's [destructor] is called. If *this
- is initially uninitialized but rhs
- is initialized, T
's
- copy constructor is called.
+ Postconditions: bool(rhs) == bool(*this)
.
*this
is unchanged and its value unspecified
- as far as optional is concerned (it is up to T
's
- operator=()
).
- If *this
- is initially uninitialized and T
's
- copy constructor fails, *this
is left properly uninitialized.
+ Exception Safety: If any exception is
+ thrown, the initialization state of *this
and rhs
+ remains unchanged. If an exception is thrown during the call to T
's copy constructor, no effect. If
+ an exception is thrown during the call to T
's
+ copy assignment, the state of its contained value is as defined by the
+ exception safety guarantee of T
's
+ copy assignment.
*this
;
+ bool(rhs) == bool(*this)
.
*this
and rhs
- remain unchanged. If an exception is thrown during the call to T
's move constructor, the state of
+ remains unchanged. If an exception is thrown during the call to T
's move constructor, the state of
*rhs
is determined by the exception safety guarantee of T
's
move constructor. If an exception is thrown during the call to T's move-assignment,
diff --git a/doc/html/index.html b/doc/html/index.html
index f217eaa..c840a4f 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -133,7 +133,7 @@
Last revised: June 20, 2014 at 16:17:17 GMT |
+Last revised: June 20, 2014 at 20:25:26 GMT |