mirror of
				https://github.com/boostorg/optional.git
				synced 2025-11-04 09:41:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
[/
 | 
						|
    Boost.Optional
 | 
						|
 | 
						|
    Copyright (c) 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)
 | 
						|
]
 | 
						|
 | 
						|
 | 
						|
[section Acknowledgments]
 | 
						|
 | 
						|
[heading Pre-formal review]
 | 
						|
 | 
						|
* Peter Dimov suggested the name 'optional', and was the first to point out
 | 
						|
the need for aligned storage.
 | 
						|
* Douglas Gregor developed 'type_with_alignment', and later Eric Friedman
 | 
						|
coded 'aligned_storage', which are the core of the optional class
 | 
						|
implementation.
 | 
						|
* Andrei Alexandrescu and Brian Parker also worked with aligned storage
 | 
						|
techniques and their work influenced the current implementation.
 | 
						|
* Gennadiy Rozental made extensive and important comments which shaped the
 | 
						|
design.
 | 
						|
* Vesa Karvonen and Douglas Gregor made quite useful comparisons between
 | 
						|
optional, variant and any; and made other relevant comments.
 | 
						|
* Douglas Gregor and Peter Dimov commented on comparisons and evaluation
 | 
						|
in boolean contexts.
 | 
						|
* Eric Friedman helped understand the issues involved with aligned storage,
 | 
						|
move/copy operations and exception safety.
 | 
						|
* Many others have participated with useful comments: Aleksey Gurotov,
 | 
						|
Kevlin Henney, David Abrahams, and others I can't recall.
 | 
						|
 | 
						|
[heading Post-formal review]
 | 
						|
 | 
						|
* William Kempf carefully considered the originally proposed interface
 | 
						|
and suggested the new interface which is currently used. He also started and
 | 
						|
fueled the discussion about the analogy optional<>/smart pointer and about
 | 
						|
relational operators.
 | 
						|
* Peter Dimov, Joel de Guzman, David Abrahams, Tanton Gibbs and Ian Hanson
 | 
						|
focused on the relational semantics of optional (originally undefined);
 | 
						|
concluding with the fact that the pointer-like interface doesn't make it a
 | 
						|
pointer so it shall have deep relational operators.
 | 
						|
* Augustus Saunders also explored the different relational semantics between
 | 
						|
optional<> and a pointer and developed the OptionalPointee concept as an aid
 | 
						|
against potential conflicts on generic code.
 | 
						|
* Joel de Guzman noticed that optional<> can be seen as an API on top of
 | 
						|
variant<T,nil_t>.
 | 
						|
* Dave Gomboc explained the meaning and usage of the Haskell analog to
 | 
						|
optional<>: the Maybe type constructor (analogy originally pointed out by
 | 
						|
David Sankel).
 | 
						|
* Other comments were posted by Vincent Finn, Anthony Williams, Ed Brey,
 | 
						|
Rob Stewart, and others.
 | 
						|
* Joel de Guzman made the case for the support of references and helped
 | 
						|
with the proper semantics.
 | 
						|
* Mat Marcus shown the virtues of a value-oriented interface, influencing
 | 
						|
the current design, and contributed the idea of "none".
 | 
						|
 | 
						|
[endsect]
 | 
						|
 |