1<html> 2<head> 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"> 10</head> 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> 19</tr></table> 20<hr> 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> 23</div> 24<div class="section"> 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> 28<h5> 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 31 review</a> 32 </h5> 33<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 34<li class="listitem"> 35 Peter Dimov suggested the name 'optional', and was the first to point 36 out the need for aligned storage. 37 </li> 38<li class="listitem"> 39 Douglas Gregor developed 'type_with_alignment', and later Eric Friedman 40 coded 'aligned_storage', which are the core of the optional class implementation. 41 </li> 42<li class="listitem"> 43 Andrei Alexandrescu and Brian Parker also worked with aligned storage 44 techniques and their work influenced the current implementation. 45 </li> 46<li class="listitem"> 47 Gennadiy Rozental made extensive and important comments which shaped 48 the design. 49 </li> 50<li class="listitem"> 51 Vesa Karvonen and Douglas Gregor made quite useful comparisons between 52 optional, variant and any; and made other relevant comments. 53 </li> 54<li class="listitem"> 55 Douglas Gregor and Peter Dimov commented on comparisons and evaluation 56 in boolean contexts. 57 </li> 58<li class="listitem"> 59 Eric Friedman helped understand the issues involved with aligned storage, 60 move/copy operations and exception safety. 61 </li> 62<li class="listitem"> 63 Many others have participated with useful comments: Aleksey Gurotov, 64 Kevlin Henney, David Abrahams, and others I can't recall. 65 </li> 66</ul></div> 67<h5> 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 70 review</a> 71 </h5> 72<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 73<li class="listitem"> 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. 78 </li> 79<li class="listitem"> 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. 84 </li> 85<li class="listitem"> 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. 89 </li> 90<li class="listitem"> 91 Joel de Guzman noticed that optional<> can be seen as an API on 92 top of variant<T,nil_t>. 93 </li> 94<li class="listitem"> 95 Dave Gomboc explained the meaning and usage of the Haskell analog to 96 optional<>: the Maybe type constructor (analogy originally pointed 97 out by David Sankel). 98 </li> 99<li class="listitem"> 100 Other comments were posted by Vincent Finn, Anthony Williams, Ed Brey, 101 Rob Stewart, and others. 102 </li> 103<li class="listitem"> 104 Joel de Guzman made the case for the support of references and helped 105 with the proper semantics. 106 </li> 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". 110 </li> 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>. 115 </li> 116</ul></div> 117</div> 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>) 123 </p> 124</div></td> 125</tr></table> 126<hr> 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> 129</div> 130</body> 131</html> 132