File: release_notes.html

package info (click to toggle)
boost1.35 1.35.0-5
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 203,856 kB
  • ctags: 337,867
  • sloc: cpp: 938,683; xml: 56,847; ansic: 41,589; python: 18,999; sh: 11,566; makefile: 664; perl: 494; yacc: 456; asm: 353; csh: 6
file content (218 lines) | stat: -rw-r--r-- 9,859 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Boost.MultiIndex Documentation - Release notes</title>
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="start" href="index.html">
<link rel="prev" href="future_work.html">
<link rel="up" href="index.html">
<link rel="next" href="acknowledgements.html">
</head>

<body>
<h1><img src="../../../boost.png" alt="boost.png (6897 bytes)" align=
"middle" width="277" height="86">Boost.MultiIndex Release notes</h1>

<div class="prev_link"><a href="future_work.html"><img src="prev.gif" alt="future work" border="0"><br>
Future work
</a></div>
<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
Index
</a></div>
<div class="next_link"><a href="acknowledgements.html"><img src="next.gif" alt="acknowledgements" border="0"><br>
Acknowledgements
</a></div><br clear="all" style="clear: all;">

<hr>


<h2>Contents</h2>

<ul>
  <li><a href="#boost_1_35">Boost 1.35 release</a></li>
  <li><a href="#boost_1_34">Boost 1.34 release</a></li>
  <li><a href="#boost_1_33_1">Boost 1.33.1 release</a></li>
  <li><a href="#boost_1_33">Boost 1.33 release</a></li>
</ul>

<h2><a name="boost_1_35">Boost 1.35 release</a></h2>

<p>
<ul>
  <li>New <a href="tutorial/key_extraction.html#global_fun"><code>global_fun</code></a>
    predefined key extractor.
  </li>
  <li>Added <a href="tutorial/indices.html#iterator_to"><code>iterator_to</code></a>
    facility.
  </li>
  <li>Included <a href="tutorial/creation.html#special_allocator">support for
    non-standard allocators</a> such as those of
    <a href="../../interprocess/index.html">Boost.Interprocess</a>, which makes
    <code>multi_index_container</code>s placeable in shared memory.
  </li>
  <li>New versions of <code>modify</code> and <code>modify_key</code> with
   rollback, as described in the
   <a href="tutorial/basics.html#ord_updating">tutorial</a>.
  </li>
  <li>Indices provide the new <code>cbegin</code>, <code>cend</code> and,
    when applicable, <code>crbegin</code> and <code>crend</code>
    member functions, in accordance with the latest drafts of the next
    revision of the C++ standard.
  </li>
  <li>Hinted insertion in ordered indices fully conforms to the resolutions of
    C++ Standard Library
    <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#233">Defect
    Report 233</a>. The new requirement that the point of insertion
    be always as close as possible to the hint induces a different behavior than
    exhibited in former releases of Boost.MultiIndex, which can potentially cause
    backwards compatibility problems; in any case, the likelihood of these
    compatibility issues arising in a real scenario is very low.
  </li>
  <li>Sequenced and random access indices now follow the requirements of the
    C++ standard for sequence containers with respect to the operations
    <code>assign(f,l)</code> and <code>insert(p,f,l)</code> (23.1.1/9): if
    <code>f</code> and <code>l</code> are of the same integral type, the
    iterator-based overloads of these member functions are avoided:
<blockquote><pre>
<span class=keyword>typedef</span> <span class=identifier>multi_index_container</span><span class=special>&lt;</span>
  <span class=keyword>int</span><span class=special>,</span><span class=identifier>indexed_by</span><span class=special>&lt;</span><span class=identifier>sequenced</span><span class=special>&lt;&gt;</span> <span class=special>&gt;</span>
<span class=special>&gt;</span> <span class=identifier>sequenced_container</span><span class=special>;</span>

<span class=identifier>std</span><span class=special>::</span><span class=identifier>list</span><span class=special>&lt;</span><span class=keyword>int</span><span class=special>&gt;</span>      <span class=identifier>l</span><span class=special>(...);</span>
<span class=identifier>sequenced_container</span> <span class=identifier>c</span><span class=special>;</span>

<span class=comment>// iterator-based overload of assign</span>
<span class=identifier>c</span><span class=special>.</span><span class=identifier>assign</span><span class=special>(</span><span class=identifier>l</span><span class=special>.</span><span class=identifier>begin</span><span class=special>(),</span><span class=identifier>l</span><span class=special>.</span><span class=identifier>end</span><span class=special>());</span> 

<span class=comment>// The following is equivalent to
//   c.assign(
//      static_cast&lt;sequenced_container::size_type&gt;(10),100);
// that is, &quot;10&quot; and &quot;100&quot; are not taken to be iterators as
// in the previous expression.</span>
<span class=identifier>c</span><span class=special>.</span><span class=identifier>assign</span><span class=special>(</span><span class=number>10</span><span class=special>,</span><span class=number>100</span><span class=special>);</span>
</pre></blockquote>
  </li>
  <li>The performance of ordered indices <code>range</code> and
    <code>equal_range</code> has been improved.
  </li>
  <li>Maintenance fixes.</li>
</ul>
</p>

<h2><a name="boost_1_34">Boost 1.34 release</a></h2>

<p>
<ul>
  <li>Added <a href="tutorial/indices.html#rnd_indices">random access
    indices</a>.
  </li>
  <li>Non key-based indices provide new
    <a href="tutorial/indices.html#rearrange">rearrange facilities</a>
    allowing for interaction with external mutating algorithms.
  </li>
  <li>All predefined Boost.MultiIndex key extractors
    instantiated for a given type <code>T</code> can handle objects of types
    derived from or convertible to <code>T</code> (and
    <a href="reference/key_extraction.html#chained_pointers">chained pointers</a>
    to those). Previously, only objects of the exact type specified (along with
    <code>reference_wrapper</code>s and chained pointers to them) were accepted.
  </li>
  <li><a href="reference/key_extraction.html#composite_key_compare"><code>composite_key_compare</code></a>
    and related classes accept operands not included in tuples as if they were passed
    in a tuple of length 1; this allows the user to omit tuple enclosing in
    lookup operations involving composite keys when only the first key is provided.
  </li>
  <li>The core algorithms of ordered indices have been optimized, yielding
    an estimated reduction of about 5% in insertion times.
  </li>
  <li>Size of ordered indices node headers have been reduced by 25% on
    most platforms, using a well known
    <a href="tutorial/indices.html#ordered_node_compression">optimization
    technique</a>.
  </li>
  <li>The tutorial has been restructured, new examples added.</li>
  <li>Maintenance fixes.</li>
</ul>
</p>

<h2><a name="boost_1_33_1">Boost 1.33.1 release</a></h2>

<p>
<ul>
  <li>For ordered and hashed indices, <code>erase(it)</code> and
    <code>erase(first,last)</code> now return an iterator to the element
    following those being deleted (previously nothing was returned), in
    accordance with the C++ Standard Library
    <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#130">Defect
    Report 130</a> and issue 6.19 of TR1
    <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf">Issues
    List</a>.
  </li>
  <li>Boost.MultiIndex offers the usual guarantees with respect to
    multithreading code provided by most STL implementations:
    <ol>
      <li>Concurrent access to different containers is safe.</li>
      <li>Concurrent read-only access to the same container is safe.</li>
    </ol>
    In previous versions of the library, the latter guarantee was not properly
    maintained if the <a href="tutorial/debug.html#safe_mode">safe
    mode</a> was set. This problem has been fixed now. 
  </li>
  <li>Maintenance fixes.</li>
</ul>
</p>

<h2><a name="boost_1_33">Boost 1.33 release</a></h2>

<p>
<ul>
  <li>Added <a href="tutorial/indices.html#hashed_indices">hashed indices</a>,
    whose interface is based on the specification for unordered associative
    containers by the C++ Standard Library Technical Report (TR1).
  </li>
  <li>Added <a href="tutorial/creation.html#serialization">serialization support</a>
    for <a href="../../serialization/index.html">Boost.Serialization</a>.
  </li>
  <li>Destruction of <code>multi_index_container</code>s and <code>clear</code>
    memfuns now perform faster.
  </li>
  <li>Internal changes aimed at reducing the length of symbol names generated
    by the compiler; cuts of up to a 50% can be achieved with respect to the
    Boost 1.32 release. This results in much shorter and more readable error
    messages and has also a beneficial impact on compilers with strict limits on
    symbol name lengths. Additionally, a section on further
    <a href="compiler_specifics.html#symbol_reduction">reduction of symbol name
    lengths</a> has been added.
  </li>
  <li>Restructured some parts of the documentation, new examples.</li>
  <li>Maintenance fixes.</li>
</ul>
</p>

<hr>

<div class="prev_link"><a href="future_work.html"><img src="prev.gif" alt="future work" border="0"><br>
Future work
</a></div>
<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
Index
</a></div>
<div class="next_link"><a href="acknowledgements.html"><img src="next.gif" alt="acknowledgements" border="0"><br>
Acknowledgements
</a></div><br clear="all" style="clear: all;">

<br>

<p>Revised October 11th 2007</p>

<p>&copy; Copyright 2003-2007 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;oz.
Distributed under the Boost Software 
License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">
LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

</body>
</html>