1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>History</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="Chapter 1. Boost.Iterator"> 8<link rel="up" href="../index.html" title="Chapter 1. Boost.Iterator"> 9<link rel="prev" href="upgrading.html" title="Upgrading from the old Boost Iterator Adaptor Library"> 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="upgrading.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="iterator.history"></a><a class="link" href="history.html" title="History">History</a> 27</h2></div></div></div> 28<p> 29 In 2000 Dave Abrahams was writing an iterator for a container of pointers, 30 which would access the pointed-to elements when dereferenced. Naturally, being 31 a library writer, he decided to generalize the idea and the Boost Iterator 32 Adaptor library was born. Dave was inspired by some writings of Andrei Alexandrescu 33 and chose a policy based design (though he probably didn't capture Andrei's 34 idea very well - there was only one policy class for all the iterator's orthogonal 35 properties). Soon Jeremy Siek realized he would need the library and they worked 36 together to produce a "Boostified" version, which was reviewed and 37 accepted into the library. They wrote a paper and made several important revisions 38 of the code. 39 </p> 40<p> 41 Eventually, several shortcomings of the older library began to make the need 42 for a rewrite apparent. Dave and Jeremy started working at the Santa Cruz C++ 43 committee meeting in 2002, and had quickly generated a working prototype. At 44 the urging of Mat Marcus, they decided to use the GenVoca/CRTP pattern approach, 45 and moved the policies into the iterator class itself. Thomas Witt expressed 46 interest and became the voice of strict compile-time checking for the project, 47 adding uses of the SFINAE technique to eliminate false converting constructors 48 and operators from the overload set. He also recognized the need for a separate 49 <code class="computeroutput"><span class="identifier">iterator_facade</span></code>, and factored 50 it out of <code class="computeroutput"><span class="identifier">iterator_adaptor</span></code>. 51 Finally, after a near-complete rewrite of the prototype, they came up with 52 the library you see today. 53 </p> 54<div class="blockquote"><blockquote class="blockquote"><p> 55 [Coplien, 1995] Coplien, J., Curiously Recurring Template Patterns, C++ Report, 56 February 1995, pp. 24-27. 57 </p></blockquote></div> 58</div> 59<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 60<td align="left"></td> 61<td align="right"><div class="copyright-footer">Copyright © 2003, 2005 David Abrahams Jeremy Siek Thomas 62 Witt<p> 63 Distributed under the Boost Software License, Version 1.0. (See accompanying 64 file LICENSE_1_0.txt or copy at <ulink url="http://www.boost.org/LICENSE_1_0.txt"> 65 http://www.boost.org/LICENSE_1_0.txt </ulink>) 66 </p> 67</div></td> 68</tr></table> 69<hr> 70<div class="spirit-nav"> 71<a accesskey="p" href="upgrading.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> 72</div> 73</body> 74</html> 75