1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 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.79.1"> 7<link rel="home" href="../index.html" title="Boost.Optional"> 8<link rel="up" href="../index.html" title="Boost.Optional"> 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="../index.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><h2 class="title" style="clear: both"> 26<a name="boost_optional.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a> 27</h2></div></div></div> 28<h4> 29<a name="boost_optional.acknowledgements.h0"></a> 30 <span class="phrase"><a name="boost_optional.acknowledgements.pre_formal_review"></a></span><a class="link" href="acknowledgements.html#boost_optional.acknowledgements.pre_formal_review">Pre-formal 31 review</a> 32 </h4> 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 out 36 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 techniques 44 and their work influenced the current implementation. 45 </li> 46<li class="listitem"> 47 Gennadiy Rozental made extensive and important comments which shaped the 48 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, Kevlin 64 Henney, David Abrahams, and others I can't recall. 65 </li> 66</ul></div> 67<h4> 68<a name="boost_optional.acknowledgements.h1"></a> 69 <span class="phrase"><a name="boost_optional.acknowledgements.post_formal_review"></a></span><a class="link" href="acknowledgements.html#boost_optional.acknowledgements.post_formal_review">Post-formal 70 review</a> 71 </h4> 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 and 75 suggested the new interface which is currently used. He also started and 76 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 it 83 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 top 92 of variant<T,nil_t>. 93 </li> 94<li class="listitem"> 95 Dave Gomboc explained the meaning and usage of the Haskell analog to optional<>: 96 the Maybe type constructor (analogy originally pointed out by David Sankel). 97 </li> 98<li class="listitem"> 99 Other comments were posted by Vincent Finn, Anthony Williams, Ed Brey, 100 Rob Stewart, and others. 101 </li> 102<li class="listitem"> 103 Joel de Guzman made the case for the support of references and helped with 104 the proper semantics. 105 </li> 106<li class="listitem"> 107 Mat Marcus shown the virtues of a value-oriented interface, influencing 108 the current design, and contributed the idea of "none". 109 </li> 110<li class="listitem"> 111 Vladimir Batov's design of Boost.Convert library motivated the development 112 of value accessors for <code class="computeroutput"><span class="identifier">optional</span></code>: 113 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>. 114 </li> 115</ul></div> 116</div> 117<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 118<td align="left"></td> 119<td align="right"><div class="copyright-footer">Copyright © 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright © 2014-2018 Andrzej Krzemieński<p> 120 Distributed under the Boost Software License, Version 1.0. (See accompanying 121 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>) 122 </p> 123</div></td> 124</tr></table> 125<hr> 126<div class="spirit-nav"> 127<a accesskey="p" href="relnotes.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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> 128</div> 129</body> 130</html> 131