1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> 4<title>Acknowledgments</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="../index.html" title="Boost.Optional"> 9<link rel="prev" href="dependencies_and_portability/optional_reference_binding.html" title="Optional Reference Binding"> 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="dependencies_and_portability/optional_reference_binding.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.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a> 27</h2></div></div></div> 28<h4> 29<a name="boost_optional.acknowledgments.h0"></a> 30 <span class="phrase"><a name="boost_optional.acknowledgments.pre_formal_review"></a></span><a class="link" href="acknowledgments.html#boost_optional.acknowledgments.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.acknowledgments.h1"></a> 69 <span class="phrase"><a name="boost_optional.acknowledgments.post_formal_review"></a></span><a class="link" href="acknowledgments.html#boost_optional.acknowledgments.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</ul></div> 111</div> 112<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 113<td align="left"></td> 114<td align="right"><div class="copyright-footer">Copyright © 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright © 2014 Andrzej Krzemieński<p> 115 Distributed under the Boost Software License, Version 1.0. (See accompanying 116 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>) 117 </p> 118</div></td> 119</tr></table> 120<hr> 121<div class="spirit-nav"> 122<a accesskey="p" href="dependencies_and_portability/optional_reference_binding.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> 123</div> 124</body> 125</html> 126