Compare commits

..

1 Commits

Author SHA1 Message Date
8dc45542d6 1.37.0 Beta 1
[SVN r49441]
2008-10-23 11:39:59 +00:00
5 changed files with 15 additions and 14 deletions

View File

@ -12,8 +12,6 @@
import quickbook ;
path-constant images : html ;
xml optional
:
optional.qbk
@ -28,8 +26,5 @@ boostbook standalone
<xsl:param>toc.max.depth=2
<xsl:param>toc.section.depth=2
<xsl:param>chunk.section.depth=1
<format>pdf:<xsl:param>img.src.path=$(images)/
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/optional/doc/html
;

View File

@ -10,6 +10,8 @@
[#optional_implementation_notes]
[section Implementation Notes]
`optional<T>` is currently implemented using a custom aligned storage facility

View File

@ -331,7 +331,7 @@ factory.
* [*Postconditions: ] `*this` is [_initialized] and its value is ['directly given]
from the factory `f` (i.e., the value [_is not copied]).
* [*Throws:] Whatever the `T` constructor called by the factory throws.
* [*Notes:] See [link boost_optional.in_place_factories In-Place Factories]
* [*Notes:] See [link optional_in_place_factories In-Place Factories]
* [*Exception Safety:] Exceptions can only be thrown during the call to
the `T` constructor used by the factory; in that case, this constructor has
no effect.
@ -385,7 +385,7 @@ __SPACE__
* [*Postconditions: ] `*this` is initialized and it references the same
object referenced by `rhs`.
* [*Notes:] If `*this` was initialized, is is ['rebound] to the new object.
See [link boost_optional.rebinding_semantics_for_assignment_of_optional_references here] for details on this behavior.
See [link optional_refassign here] for details on this behavior.
* [*Example:]
``
int a = 1 ;
@ -444,7 +444,7 @@ __SPACE__
references the same object referenced by `*rhs`; otherwise, `*this` is
uninitialized (and references no object).
* [*Notes:] If `*this` was initialized and so is *rhs, this is is ['rebound] to
the new object. See [link boost_optional.rebinding_semantics_for_assignment_of_optional_references here] for details on this behavior.
the new object. See [link optional_refassign here] for details on this behavior.
* [*Example:]
``
int a = 1 ;

View File

@ -23,6 +23,8 @@ rather than the reference itself.
[endsect]
[#optional_refassign]
[section Rebinding semantics for assignment of optional references]
If you assign to an ['uninitialized ] `optional<T&>` the effect is to bind (for
@ -110,6 +112,8 @@ In such scenario, you can assign the value itself directly, as in:
[endsect]
[#optional_in_place_factories]
[section In-Place Factories]
One of the typical problems with wrappers and containers is that their
@ -201,7 +205,7 @@ A wrapper class aware of this can use it as:
{
// Wrapped object constructed in-place via a TypedInPlaceFactory.
// No temporary created.
W ( TypedInPlaceFactory2<X,int,std::string>(123,"hello")) ;
W ( TypedInPlaceFactory2<X,int,std::string&rt(123,"hello")) ;
}
The factories are divided in two groups:
@ -284,7 +288,7 @@ instead, it won't compile).
[section Exception Safety Guarantees]
Because of the current implementation (see [link boost_optional.implementation_notes Implementation Notes]), all of the assignment methods:
Because of the current implementation (see [link optional_implementation_notes Implementation Notes]), all of the assignment methods:
* `optional<T>::operator= ( optional<T> const& )`
* `optional<T>::operator= ( T const& )`

View File

@ -342,14 +342,14 @@ void test_binding()
int i = 0 ;
optional<int&> ori1 = i ;
BOOST_CHECK( &(*ori1) == &i ) ;
optional<int&> ori2(i) ;
BOOST_CHECK( &(*ori2) == &i ) ;
int const ci = 0 ;
optional<int const&> orci1 = ci ;
BOOST_CHECK( &(*orci1) == &ci ) ;
optional<int const&> orci2(ci) ;
BOOST_CHECK( &(*orci2) == &ci ) ;
}
@ -360,7 +360,7 @@ int test_main( int, char* [] )
{
test_with_class_type();
test_with_builtin_types();
test_binding();
test_binding();
}
catch ( ... )
{