From e68e68276ce6c34abf4f66121a97f1f21f9eff57 Mon Sep 17 00:00:00 2001
From: Daniel James Home
Libraries
-People
-FAQ
+People
+FAQ
More
@@ -33,7 +33,7 @@
First, it is functionally similar to a tristate boolean (false,maybe,true)
- —such as boost::tribool—
+ —such as boost::tribool—
except that in a tristate boolean, the maybe state represents
a valid value, unlike the corresponding state of an uninitialized
optional<bool>
. It
@@ -49,8 +49,7 @@
lead to subtle errors due to the implicit bool
conversion:
-void foo ( bool v ) ; +void foo ( bool v ) ; void bar() { optional<bool> v = try(); diff --git a/doc/html/boost_optional/acknowledgments.html b/doc/html/boost_optional/acknowledgments.html index f0e11c2..49ac7c8 100644 --- a/doc/html/boost_optional/acknowledgments.html +++ b/doc/html/boost_optional/acknowledgments.html @@ -13,8 +13,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -26,7 +26,7 @@ Acknowledgments- + Pre-formal review
@@ -65,7 +65,7 @@- + Post-formal review
diff --git a/doc/html/boost_optional/dependencies_and_portability.html b/doc/html/boost_optional/dependencies_and_portability.html index 0643863..431bfe1 100644 --- a/doc/html/boost_optional/dependencies_and_portability.html +++ b/doc/html/boost_optional/dependencies_and_portability.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_optional/detailed_semantics.html b/doc/html/boost_optional/detailed_semantics.html index bc2b7ab..06a6a63 100644 --- a/doc/html/boost_optional/detailed_semantics.html +++ b/doc/html/boost_optional/detailed_semantics.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -64,7 +64,7 @@![]()
- + optional class member functions
@@ -97,8 +97,7 @@ called.
-optional<T> def ; +Example:optional<T> def ; assert ( !def ) ;
boost::none
denotes an instance of boost::none_t
that can be used as the parameter.
-#include <boost/none.hpp> +Example:#include <boost/none.hpp> optional<T> n(none) ; assert ( !n ) ;@@ -180,8 +178,7 @@ has no effect.
-T v; +Example:T v; optional<T> opt(v); assert ( *opt == v ) ;@@ -212,8 +209,7 @@ Throws: Nothing.
-T v; +Example:T v; T& vref = v ; optional<T&> opt(vref); assert ( *opt == v ) ; @@ -338,8 +334,7 @@ has no effect.
-optional<T> uninit ; +Example:optional<T> uninit ; assert (!uninit); optional<T> uinit2 ( uninit ) ; @@ -387,8 +382,7 @@ will reefer to the same object (they alias).
-optional<T&> uninit ; +Example:optional<T&> uninit ; assert (!uninit); optional<T&> uinit2 ( uninit ) ; @@ -454,8 +448,7 @@ has no effect.
-optional<double> x(123.4); +Example:optional<double> x(123.4); assert ( *x == 123.4 ) ; optional<int> y(x) ; @@ -515,8 +508,7 @@ constructor used by the factory; in that case, this constructor has no effect.
-class C { C ( char, double, std::string ) ; } ; +Example:class C { C ( char, double, std::string ) ; } ; C v('A',123.4,"hello"); @@ -574,8 +566,7 @@ copy constructor fails,*this
is left properly uninitialized.
-T x; +Example:T x; optional<T> def ; optional<T> opt(x) ; @@ -617,8 +608,7 @@ details on this behavior.
-int a = 1 ; +Example:int a = 1 ; int b = 2 ; T& ra = a ; T& rb = b ; @@ -687,8 +677,7 @@ copy constructor fails,*this
is left properly uninitialized.
-T v; +Example:T v; optional<T> opt(v); optional<T> def ; @@ -725,8 +714,7 @@ for details on this behavior.
-int a = 1 ; +Example:int a = 1 ; int b = 2 ; T& ra = a ; T& rb = b ; @@ -800,8 +788,7 @@ converting constructor fails,*this
is left properly uninitialized.
-T v; +Example:T v; optional<T> opt0(v); optional<U> opt1; @@ -930,8 +917,7 @@BOOST_ASSERT()
.
-T v ; +Example:T v ; optional<T> opt ( v ); T const& u = *opt; assert ( u == v ) ; @@ -1005,8 +991,7 @@ Throws: Nothing.
-T v, z ; +Example:T v, z ; optional<T> def; T const& y = def.get_value_or(z); assert ( y == z ) ; @@ -1099,8 +1084,7 @@BOOST_ASSERT()
.
-T v ; +Example:T v ; T& vref = v ; optional<T&> opt ( vref ); T const& vref2 = *opt; @@ -1173,8 +1157,7 @@ so you should not hold nor delete this pointer
-T v; +Example:T v; optional<T> opt(v); optional<T> const copt(v); T* p = opt.get_ptr() ; @@ -1226,8 +1209,7 @@BOOST_ASSERT()
.
-struct X { int mdata ; } ; +Example:struct X { int mdata ; } ; X x ; optional<X> opt (x); opt->mdata = 2 ; @@ -1257,8 +1239,7 @@ Throws: Nothing.
-optional<T> def ; +Example:optional<T> def ; assert ( def == 0 ); optional<T> opt ( v ) ; assert ( opt ); @@ -1294,8 +1275,7 @@ in certain boolean contexts.
-optional<T> opt ; +Example:optional<T> opt ; assert ( !opt ); *opt = some_T ; @@ -1328,8 +1308,7 @@ Throws: Nothing.
-optional<T> def ; +Example:optional<T> def ; assert ( !def.is_initialized() ); optional<T> opt ( v ) ; assert ( opt.is_initialized() ); @@ -1340,7 +1319,7 @@![]()
- + Free functions
@@ -1364,8 +1343,7 @@ of
v
.
-template<class T> void foo ( optional<T> const& opt ) ; +Example:template<class T> void foo ( optional<T> const& opt ) ; foo ( make_optional(1+1) ) ; // Creates an optional<int>@@ -1393,8 +1371,7 @@ ofv
.
-optional<double> calculate_foo() +Example:optional<double> calculate_foo() { double val = compute_foo(); return make_optional(is_not_nan_and_finite(val),val); @@ -1441,8 +1418,7 @@ instead
-T x(12); +Example:T x(12); T y(12); T z(21); optional<T> def0 ; @@ -1503,8 +1479,7 @@ instead.
-T x(12); +Example:T x(12); T y(34); optional<T> def ; optional<T> optX(x); @@ -1674,8 +1649,7 @@ If only one is initialized, it has the same basic guarantee asoptional<T>::reset( T const& )
.
-T x(12); +Example:T x(12); T y(21); optional<T> def0 ; optional<T> def1 ; diff --git a/doc/html/boost_optional/development.html b/doc/html/boost_optional/development.html index ec4a83f..5a14713 100644 --- a/doc/html/boost_optional/development.html +++ b/doc/html/boost_optional/development.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -292,7 +292,7 @@ itself which are supported by a special interface.- + Lexically-hinted Value Access in the presence of possibly untitialized optional objects: The operators * and -> @@ -357,7 +357,7 @@ incarnated by pointers.
- + Optional<T> as a model of OptionalPointee
diff --git a/doc/html/boost_optional/examples.html b/doc/html/boost_optional/examples.html index 0ec372c..20bf2ec 100644 --- a/doc/html/boost_optional/examples.html +++ b/doc/html/boost_optional/examples.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -41,8 +41,7 @@ Optional return values --optional<char> get_async_input() +optional<char> get_async_input() { if ( !queue.empty() ) return optional<char>(queue.top()); @@ -63,8 +62,7 @@ Optional local variables --optional<string> name ; +optional<string> name ; if ( database.open() ) { name.reset ( database.lookup(employer_name) ) ; @@ -85,8 +83,7 @@ Optional data members --class figure +class figure { public: @@ -124,8 +121,7 @@ Bypassing expensive unnecessary default construction --class ExpensiveCtor { ... } ; +class ExpensiveCtor { ... } ; class Fred { Fred() : mLargeVector(10000) {} diff --git a/doc/html/boost_optional/exception_safety_guarantees.html b/doc/html/boost_optional/exception_safety_guarantees.html index 400c13f..42b6aa0 100644 --- a/doc/html/boost_optional/exception_safety_guarantees.html +++ b/doc/html/boost_optional/exception_safety_guarantees.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -72,8 +72,7 @@ know thatoptional
's assignment and reset has the same guarantees. --// +// // Case 1: Exception thrown during assignment. // T v0(123); @@ -113,7 +112,7 @@ }- + Swap
diff --git a/doc/html/boost_optional/implementation_notes.html b/doc/html/boost_optional/implementation_notes.html index 0b8a232..31a2ebe 100644 --- a/doc/html/boost_optional/implementation_notes.html +++ b/doc/html/boost_optional/implementation_notes.html @@ -14,8 +14,8 @@
Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_optional/in_place_factories.html b/doc/html/boost_optional/in_place_factories.html index 32c5033..45896e5 100644 --- a/doc/html/boost_optional/in_place_factories.html +++ b/doc/html/boost_optional/in_place_factories.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -34,8 +34,7 @@ but also requires the existence of a fully constructed object, often temporary, just to follow the copy from: --struct X +struct X { X ( int, std:::string ) ; } ; @@ -60,8 +59,7 @@ object right in the container's storage. In this scheme, the user only needs to supply the arguments to the constructor to use in the wrapped object construction. --class W +class W { X wrapped_ ; @@ -94,8 +92,7 @@For example, one member of this family looks like:
--template<class T,class A0, class A1> +template<class T,class A0, class A1> class TypedInPlaceFactory2 { A0 m_a0 ; A1 m_a1 ; @@ -110,8 +107,7 @@A wrapper class aware of this can use it as:
--class W +class W { X wrapped_ ; @@ -150,8 +146,7 @@ This library provides an overloaded set of helper template functions to construct these factories without requiring unnecessary template parameters: --template<class A0,...,class AN> +template<class A0,...,class AN> InPlaceFactoryN <A0,...,AN> in_place ( A0 const& a0, ..., AN const& aN) ; template<class T,class A0,...,class AN> @@ -160,8 +155,7 @@In-place factories can be used generically by the wrapper and user as follows:
--class W +class W { X wrapped_ ; diff --git a/doc/html/boost_optional/optional_references.html b/doc/html/boost_optional/optional_references.html index cacadbd..7ea6a39 100644 --- a/doc/html/boost_optional/optional_references.html +++ b/doc/html/boost_optional/optional_references.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html b/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html index 71ca93c..3a7df8e 100644 --- a/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html +++ b/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -32,8 +32,7 @@ the effect is to bind (for the first time) to the object. Clearly, there is no other choice. --int x = 1 ; +int x = 1 ; int& rx = x ; optional<int&> ora ; optional<int&> orb(x) ; @@ -45,8 +44,7 @@ If you assign to a bare C++ reference, the assignment is forwarded to the referenced object; it's value changes but the reference is never rebound. --int a = 1 ; +int a = 1 ; int& ra = a ; int b = 2 ; int& rb = b ; @@ -60,8 +58,7 @@ the effect is to rebind to the new object instead of assigning the referee. This is unlike bare C++ references. --int a = 1 ; +int a = 1 ; int b = 2 ; int& ra = a ; int& rb = b ; @@ -73,7 +70,7 @@ assert(b==3);- + Rationale
@@ -93,8 +90,7 @@ forwarding assignment to the referenced object (thus changing the referenced object value but not rebinding), and consider the following code:
--optional<int&> a = get(); +optional<int&> a = get(); int x = 1 ; int& rx = x ; optional<int&> b(rx); @@ -132,8 +128,7 @@ for the first time is OK while rebinding is not which is IMO very unlikely. In such scenario, you can assign the value itself directly, as in: --assert(!!opt); +assert(!!opt); *opt=value;diff --git a/doc/html/boost_optional/synopsis.html b/doc/html/boost_optional/synopsis.html index b23556b..2f7aaeb 100644 --- a/doc/html/boost_optional/synopsis.html +++ b/doc/html/boost_optional/synopsis.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -26,8 +26,7 @@ --namespace boost { +namespace boost { template<class T> class optional diff --git a/doc/html/boost_optional/type_requirements.html b/doc/html/boost_optional/type_requirements.html index 96dea0c..308453e 100644 --- a/doc/html/boost_optional/type_requirements.html +++ b/doc/html/boost_optional/type_requirements.html @@ -14,8 +14,8 @@Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/index.html b/doc/html/index.html index c01ec5f..dbe7199 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -12,8 +12,8 @@Home Libraries -People -FAQ +People +FAQ More
@@ -27,7 +27,7 @@Copyright © 2003 -2007 Fernando Luis Cacciola Carballal
-Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -142,16 +142,14 @@ the function would conceptually return. For example, the last two functions could have the following interface: --std::pair<char,bool> get_async_input(); +std::pair<char,bool> get_async_input(); std::pair<point,bool> polygon::get_any_point_effectively_inside();These functions use a consistent interface for dealing with possibly inexistent results:
--std::pair<point,bool> p = poly.get_any_point_effectively_inside(); +std::pair<point,bool> p = poly.get_any_point_effectively_inside(); if ( p.second ) flood_fill(p.first);@@ -174,7 +172,7 @@
- + Last revised: March 15, 2008 at 13:58:42 GMT
Last revised: October 10, 2008 at 20:53:37 GMT