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"><</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">></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"><</span><span class="identifier">Range</span><span class="special">>::</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"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">></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">&</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"><</span><span class="identifier">E</span><span class="special">></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">&</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"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">></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"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">>&</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"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">></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">&</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"><</span><span class="identifier">E</span><span class="special">></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">&</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"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">A</span><span class="special">></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">&</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"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">></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"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">>&</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"><</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">></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">&</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"><</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">></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">&</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"><</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">></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">&</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"><</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">></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">&</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"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">b</span><span class="special">></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">&</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"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">ST</span><span class="special">></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">&</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"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">n</span><span class="special">></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"><</span><span class="identifier">S</span><span class="special">>::</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">&</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"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">TE</span><span class="special">></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">&</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"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>. 354 <code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span></code>, 355 <code class="computeroutput"><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</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"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special"><</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</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