3 <meta http-equiv=
"Content-Type" content=
"text/html; charset=US-ASCII">
4 <title>Acknowledgements
</title>
5 <link rel=
"stylesheet" href=
"../../../../../../doc/src/boostbook.css" type=
"text/css">
6 <meta name=
"generator" content=
"DocBook XSL Stylesheets V1.78.1">
7 <link rel=
"home" href=
"../../index.html" title=
"Boost.Optional">
8 <link rel=
"up" href=
"../../optional/reference.html" title=
"Reference">
9 <link rel=
"prev" href=
"relnotes.html" title=
"Release Notes">
11 <body bgcolor=
"white" text=
"black" link=
"#0000FF" vlink=
"#840084" alink=
"#0000FF">
12 <table cellpadding=
"2" width=
"100%"><tr>
13 <td valign=
"top"><img alt=
"Boost C++ Libraries" width=
"277" height=
"86" src=
"../../../../../../boost.png"></td>
14 <td align=
"center"><a href=
"../../../../../../index.html">Home
</a></td>
15 <td align=
"center"><a href=
"../../../../../../libs/libraries.htm">Libraries
</a></td>
16 <td align=
"center"><a href=
"http://www.boost.org/users/people.html">People
</a></td>
17 <td align=
"center"><a href=
"http://www.boost.org/users/faq.html">FAQ
</a></td>
18 <td align=
"center"><a href=
"../../../../../../more/index.htm">More
</a></td>
21 <div class=
"spirit-nav">
22 <a accesskey=
"p" href=
"relnotes.html"><img src=
"../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../../optional/reference.html"><img src=
"../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../index.html"><img src=
"../../../../../../doc/src/images/home.png" alt=
"Home"></a>
25 <div class=
"titlepage"><div><div><h3 class=
"title">
26 <a name=
"boost_optional.reference.acknowledgements"></a><a class=
"link" href=
"acknowledgements.html" title=
"Acknowledgements">Acknowledgements
</a>
27 </h3></div></div></div>
29 <a name=
"boost_optional.reference.acknowledgements.h0"></a>
30 <span class=
"phrase"><a name=
"boost_optional.reference.acknowledgements.pre_formal_review"></a></span><a class=
"link" href=
"acknowledgements.html#boost_optional.reference.acknowledgements.pre_formal_review">Pre-formal
33 <div class=
"itemizedlist"><ul class=
"itemizedlist" style=
"list-style-type: disc; ">
35 Peter Dimov suggested the name 'optional', and was the first to point
36 out the need for aligned storage.
39 Douglas Gregor developed 'type_with_alignment', and later Eric Friedman
40 coded 'aligned_storage', which are the core of the optional class implementation.
43 Andrei Alexandrescu and Brian Parker also worked with aligned storage
44 techniques and their work influenced the current implementation.
47 Gennadiy Rozental made extensive and important comments which shaped
51 Vesa Karvonen and Douglas Gregor made quite useful comparisons between
52 optional, variant and any; and made other relevant comments.
55 Douglas Gregor and Peter Dimov commented on comparisons and evaluation
59 Eric Friedman helped understand the issues involved with aligned storage,
60 move/copy operations and exception safety.
63 Many others have participated with useful comments: Aleksey Gurotov,
64 Kevlin Henney, David Abrahams, and others I can't recall.
68 <a name=
"boost_optional.reference.acknowledgements.h1"></a>
69 <span class=
"phrase"><a name=
"boost_optional.reference.acknowledgements.post_formal_review"></a></span><a class=
"link" href=
"acknowledgements.html#boost_optional.reference.acknowledgements.post_formal_review">Post-formal
72 <div class=
"itemizedlist"><ul class=
"itemizedlist" style=
"list-style-type: disc; ">
74 William Kempf carefully considered the originally proposed interface
75 and suggested the new interface which is currently used. He also started
76 and fueled the discussion about the analogy optional
<>/smart pointer
77 and about relational operators.
80 Peter Dimov, Joel de Guzman, David Abrahams, Tanton Gibbs and Ian Hanson
81 focused on the relational semantics of optional (originally undefined);
82 concluding with the fact that the pointer-like interface doesn't make
83 it a pointer so it shall have deep relational operators.
86 Augustus Saunders also explored the different relational semantics between
87 optional
<> and a pointer and developed the OptionalPointee concept
88 as an aid against potential conflicts on generic code.
91 Joel de Guzman noticed that optional
<> can be seen as an API on
92 top of variant
<T,nil_t
>.
95 Dave Gomboc explained the meaning and usage of the Haskell analog to
96 optional
<>: the Maybe type constructor (analogy originally pointed
100 Other comments were posted by Vincent Finn, Anthony Williams, Ed Brey,
101 Rob Stewart, and others.
103 <li class=
"listitem">
104 Joel de Guzman made the case for the support of references and helped
105 with the proper semantics.
107 <li class=
"listitem">
108 Mat Marcus shown the virtues of a value-oriented interface, influencing
109 the current design, and contributed the idea of
"none".
111 <li class=
"listitem">
112 Vladimir Batov's design of Boost.Convert library motivated the development
113 of value accessors for
<code class=
"computeroutput"><span class=
"identifier">optional
</span></code>:
114 functions
<code class=
"computeroutput"><span class=
"identifier">value
</span></code>,
<code class=
"computeroutput"><span class=
"identifier">value_or
</span></code>,
<code class=
"computeroutput"><span class=
"identifier">value_or_eval
</span></code>.
118 <table xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width=
"100%"><tr>
119 <td align=
"left"></td>
120 <td align=
"right"><div class=
"copyright-footer">Copyright
© 2003-
2007 Fernando Luis Cacciola Carballal
<br>Copyright
© 2014-
2016 Andrzej Krzemie
ński
<p>
121 Distributed under the Boost Software License, Version
1.0. (See accompanying
122 file LICENSE_1_0.txt or copy at
<a href=
"http://www.boost.org/LICENSE_1_0.txt" target=
"_top">http://www.boost.org/LICENSE_1_0.txt
</a>)
127 <div class=
"spirit-nav">
128 <a accesskey=
"p" href=
"relnotes.html"><img src=
"../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../../optional/reference.html"><img src=
"../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../index.html"><img src=
"../../../../../../doc/src/images/home.png" alt=
"Home"></a>