• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>ATL Ranges</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. Range 2.0">
8<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
9<link rel="prev" href="mfc_ranges.html" title="MFC Ranges">
10<link rel="next" href="const_ranges.html" title="const Ranges">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="mfc_ranges.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.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><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="range.mfc_atl.atl_ranges"></a><a class="link" href="atl_ranges.html" title="ATL Ranges">ATL Ranges</a>
28</h3></div></div></div>
29<p>
30        If the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">atl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
31        is included before or after Boost.Range headers, the ATL collections and
32        strings become models of Range. The table below lists the Traversal Category
33        and <code class="computeroutput"><span class="identifier">range_reference</span></code> of ATL
34        ranges.
35      </p>
36<div class="informaltable"><table class="table">
37<colgroup>
38<col>
39<col>
40<col>
41</colgroup>
42<thead><tr>
43<th>
44                <p>
45                  Range
46                </p>
47              </th>
48<th>
49                <p>
50                  Traversal Category
51                </p>
52              </th>
53<th>
54                <p>
55                  <code class="computeroutput"><span class="identifier">range_reference</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
56                </p>
57              </th>
58</tr></thead>
59<tbody>
60<tr>
61<td>
62                <p>
63                  <code class="computeroutput"><span class="identifier">CAtlArray</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">&gt;</span></code>
64                </p>
65              </td>
66<td>
67                <p>
68                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
69                  Range</a>
70                </p>
71              </td>
72<td>
73                <p>
74                  <code class="computeroutput"><span class="identifier">E</span><span class="special">&amp;</span></code>
75                </p>
76              </td>
77</tr>
78<tr>
79<td>
80                <p>
81                  <code class="computeroutput"><span class="identifier">CAutoPtrArray</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;</span></code>
82                </p>
83              </td>
84<td>
85                <p>
86                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
87                  Range</a>
88                </p>
89              </td>
90<td>
91                <p>
92                  <code class="computeroutput"><span class="identifier">E</span><span class="special">&amp;</span></code>
93                </p>
94              </td>
95</tr>
96<tr>
97<td>
98                <p>
99                  <code class="computeroutput"><span class="identifier">CInterfaceArray</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;</span></code>
100                </p>
101              </td>
102<td>
103                <p>
104                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
105                  Range</a>
106                </p>
107              </td>
108<td>
109                <p>
110                  <code class="computeroutput"><span class="identifier">CComQIPtr</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;&amp;</span></code>
111                </p>
112              </td>
113</tr>
114<tr>
115<td>
116                <p>
117                  <code class="computeroutput"><span class="identifier">CAtlList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">&gt;</span></code>
118                </p>
119              </td>
120<td>
121                <p>
122                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
123                  Range</a>
124                </p>
125              </td>
126<td>
127                <p>
128                  <code class="computeroutput"><span class="identifier">E</span><span class="special">&amp;</span></code>
129                </p>
130              </td>
131</tr>
132<tr>
133<td>
134                <p>
135                  <code class="computeroutput"><span class="identifier">CAutoPtrList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;</span></code>
136                </p>
137              </td>
138<td>
139                <p>
140                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
141                  Range</a>
142                </p>
143              </td>
144<td>
145                <p>
146                  <code class="computeroutput"><span class="identifier">E</span><span class="special">&amp;</span></code>
147                </p>
148              </td>
149</tr>
150<tr>
151<td>
152                <p>
153                  <code class="computeroutput"><span class="identifier">CHeapPtrList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</span></code>
154                </p>
155              </td>
156<td>
157                <p>
158                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
159                  Range</a>
160                </p>
161              </td>
162<td>
163                <p>
164                  <code class="computeroutput"><span class="identifier">E</span><span class="special">&amp;</span></code>
165                </p>
166              </td>
167</tr>
168<tr>
169<td>
170                <p>
171                  <code class="computeroutput"><span class="identifier">CInterfaceList</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;</span></code>
172                </p>
173              </td>
174<td>
175                <p>
176                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
177                  Range</a>
178                </p>
179              </td>
180<td>
181                <p>
182                  <code class="computeroutput"><span class="identifier">CComQIPtr</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;&amp;</span></code>
183                </p>
184              </td>
185</tr>
186<tr>
187<td>
188                <p>
189                  <code class="computeroutput"><span class="identifier">CAtlMap</span><span class="special">&lt;</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">&gt;</span></code>
190                </p>
191              </td>
192<td>
193                <p>
194                  <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
195                </p>
196              </td>
197<td>
198                <p>
199                  <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&amp;</span></code>
200                </p>
201              </td>
202</tr>
203<tr>
204<td>
205                <p>
206                  <code class="computeroutput"><span class="identifier">CRBTree</span><span class="special">&lt;</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">&gt;</span></code>
207                </p>
208              </td>
209<td>
210                <p>
211                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
212                  Range</a>
213                </p>
214              </td>
215<td>
216                <p>
217                  <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&amp;</span></code>
218                </p>
219              </td>
220</tr>
221<tr>
222<td>
223                <p>
224                  <code class="computeroutput"><span class="identifier">CRBMap</span><span class="special">&lt;</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">&gt;</span></code>
225                </p>
226              </td>
227<td>
228                <p>
229                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
230                  Range</a>
231                </p>
232              </td>
233<td>
234                <p>
235                  <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&amp;</span></code>
236                </p>
237              </td>
238</tr>
239<tr>
240<td>
241                <p>
242                  <code class="computeroutput"><span class="identifier">CRBMultiMap</span><span class="special">&lt;</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">&gt;</span></code>
243                </p>
244              </td>
245<td>
246                <p>
247                  <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
248                  Range</a>
249                </p>
250              </td>
251<td>
252                <p>
253                  <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&amp;</span></code>
254                </p>
255              </td>
256</tr>
257<tr>
258<td>
259                <p>
260                  <code class="computeroutput"><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">b</span><span class="special">&gt;</span></code>
261                </p>
262              </td>
263<td>
264                <p>
265                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
266                  Range</a>
267                </p>
268              </td>
269<td>
270                <p>
271                  <code class="computeroutput"><span class="identifier">B</span><span class="special">&amp;</span></code>
272                </p>
273              </td>
274</tr>
275<tr>
276<td>
277                <p>
278                  <code class="computeroutput"><span class="identifier">CStringT</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">ST</span><span class="special">&gt;</span></code>
279                </p>
280              </td>
281<td>
282                <p>
283                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
284                  Range</a>
285                </p>
286              </td>
287<td>
288                <p>
289                  <code class="computeroutput"><span class="identifier">B</span><span class="special">&amp;</span></code>
290                </p>
291              </td>
292</tr>
293<tr>
294<td>
295                <p>
296                  <code class="computeroutput"><span class="identifier">CFixedStringT</span><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">n</span><span class="special">&gt;</span></code>
297                </p>
298              </td>
299<td>
300                <p>
301                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
302                  Range</a>
303                </p>
304              </td>
305<td>
306                <p>
307                  <code class="computeroutput"><span class="identifier">range_reference</span><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
308                </p>
309              </td>
310</tr>
311<tr>
312<td>
313                <p>
314                  <code class="computeroutput"><span class="identifier">CComBSTR</span></code>
315                </p>
316              </td>
317<td>
318                <p>
319                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
320                  Range</a>
321                </p>
322              </td>
323<td>
324                <p>
325                  <code class="computeroutput"><span class="identifier">OLECHAR</span><span class="special">&amp;</span></code>
326                </p>
327              </td>
328</tr>
329<tr>
330<td>
331                <p>
332                  <code class="computeroutput"><span class="identifier">CSimpleArray</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">TE</span><span class="special">&gt;</span></code>
333                </p>
334              </td>
335<td>
336                <p>
337                  <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
338                  Range</a>
339                </p>
340              </td>
341<td>
342                <p>
343                  <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span></code>
344                </p>
345              </td>
346</tr>
347</tbody>
348</table></div>
349<p>
350        Other <a class="link" href="../../index.html" title="Chapter 1. Range 2.0">Boost.Range</a> metafunctions are defined
351        by the following. Let <code class="computeroutput"><span class="identifier">Range</span></code>
352        be any type listed above and <code class="computeroutput"><span class="identifier">Ref</span></code>
353        be the same as <code class="computeroutput"><span class="identifier">range_reference</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
354        <code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span></code>,
355        <code class="computeroutput"><span class="identifier">range_difference</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span></code>,
356        and <code class="computeroutput"><span class="identifier">range_pointer</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
357        As for <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Range</span></code>,
358        see below.
359      </p>
360</div>
361<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
362<td align="left"></td>
363<td align="right"><div class="copyright-footer">Copyright © 2003-2010 Thorsten Ottosen,
364      Neil Groves<p>
365        Distributed under the Boost Software License, Version 1.0. (See accompanying
366        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>)
367      </p>
368</div></td>
369</tr></table>
370<hr>
371<div class="spirit-nav">
372<a accesskey="p" href="mfc_ranges.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.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><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
373</div>
374</body>
375</html>
376