1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>MFC 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="requirements.html" title="Requirements"> 10<link rel="next" href="atl_ranges.html" title="ATL 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="requirements.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="atl_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.mfc_ranges"></a><a class="link" href="mfc_ranges.html" title="MFC Ranges">MFC 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">mfc</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 MFC 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 MFC 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">CArray</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</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">T</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">CList</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">></span></code> 82 </p> 83 </td> 84<td> 85 <p> 86 <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional 87 Range</a> 88 </p> 89 </td> 90<td> 91 <p> 92 <code class="computeroutput"><span class="identifier">T</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">CMap</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">AK</span><span class="special">,</span><span class="identifier">M</span><span class="special">,</span><span class="identifier">AM</span><span class="special">></span></code> 100 </p> 101 </td> 102<td> 103 <p> 104 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 105 </p> 106 </td> 107<td> 108 <p> 109 <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code> 110 </p> 111 </td> 112</tr> 113<tr> 114<td> 115 <p> 116 <code class="computeroutput"><span class="identifier">CTypedPtrArray</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*></span></code> 117 </p> 118 </td> 119<td> 120 <p> 121 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 122 Range</a> 123 </p> 124 </td> 125<td> 126 <p> 127 <code class="computeroutput"><span class="identifier">T</span><span class="special">*</span> 128 <span class="keyword">const</span></code> 129 </p> 130 </td> 131</tr> 132<tr> 133<td> 134 <p> 135 <code class="computeroutput"><span class="identifier">CTypedPtrList</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</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">T</span><span class="special">*</span> 147 <span class="keyword">const</span></code> 148 </p> 149 </td> 150</tr> 151<tr> 152<td> 153 <p> 154 <code class="computeroutput"><span class="identifier">CTypedPtrMap</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*></span></code> 155 </p> 156 </td> 157<td> 158 <p> 159 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 160 </p> 161 </td> 162<td> 163 <p> 164 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*></span> 165 <span class="keyword">const</span></code> 166 </p> 167 </td> 168</tr> 169<tr> 170<td> 171 <p> 172 <code class="computeroutput"><span class="identifier">CByteArray</span></code> 173 </p> 174 </td> 175<td> 176 <p> 177 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 178 Range</a> 179 </p> 180 </td> 181<td> 182 <p> 183 <code class="computeroutput"><span class="identifier">BYTE</span><span class="special">&</span></code> 184 </p> 185 </td> 186</tr> 187<tr> 188<td> 189 <p> 190 <code class="computeroutput"><span class="identifier">CDWordArray</span></code> 191 </p> 192 </td> 193<td> 194 <p> 195 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 196 Range</a> 197 </p> 198 </td> 199<td> 200 <p> 201 <code class="computeroutput"><span class="identifier">DWORD</span><span class="special">&</span></code> 202 </p> 203 </td> 204</tr> 205<tr> 206<td> 207 <p> 208 <code class="computeroutput"><span class="identifier">CObArray</span></code> 209 </p> 210 </td> 211<td> 212 <p> 213 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 214 Range</a> 215 </p> 216 </td> 217<td> 218 <p> 219 <code class="computeroutput"><span class="identifier">CObject</span><span class="special">*&</span></code> 220 </p> 221 </td> 222</tr> 223<tr> 224<td> 225 <p> 226 <code class="computeroutput"><span class="identifier">CPtrArray</span></code> 227 </p> 228 </td> 229<td> 230 <p> 231 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 232 Range</a> 233 </p> 234 </td> 235<td> 236 <p> 237 <code class="computeroutput"><span class="keyword">void</span><span class="special">*&</span></code> 238 </p> 239 </td> 240</tr> 241<tr> 242<td> 243 <p> 244 <code class="computeroutput"><span class="identifier">CStringArray</span></code> 245 </p> 246 </td> 247<td> 248 <p> 249 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 250 Range</a> 251 </p> 252 </td> 253<td> 254 <p> 255 <code class="computeroutput"><span class="identifier">CString</span><span class="special">&</span></code> 256 </p> 257 </td> 258</tr> 259<tr> 260<td> 261 <p> 262 <code class="computeroutput"><span class="identifier">CUIntArray</span></code> 263 </p> 264 </td> 265<td> 266 <p> 267 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 268 Range</a> 269 </p> 270 </td> 271<td> 272 <p> 273 <code class="computeroutput"><span class="identifier">UINT</span><span class="special">&</span></code> 274 </p> 275 </td> 276</tr> 277<tr> 278<td> 279 <p> 280 <code class="computeroutput"><span class="identifier">CWordArray</span></code> 281 </p> 282 </td> 283<td> 284 <p> 285 <a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access 286 Range</a> 287 </p> 288 </td> 289<td> 290 <p> 291 <code class="computeroutput"><span class="identifier">WORD</span><span class="special">&</span></code> 292 </p> 293 </td> 294</tr> 295<tr> 296<td> 297 <p> 298 <code class="computeroutput"><span class="identifier">CObList</span></code> 299 </p> 300 </td> 301<td> 302 <p> 303 <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional 304 Range</a> 305 </p> 306 </td> 307<td> 308 <p> 309 <code class="computeroutput"><span class="identifier">CObject</span><span class="special">*&</span></code> 310 </p> 311 </td> 312</tr> 313<tr> 314<td> 315 <p> 316 <code class="computeroutput"><span class="identifier">CPtrList</span></code> 317 </p> 318 </td> 319<td> 320 <p> 321 <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional 322 Range</a> 323 </p> 324 </td> 325<td> 326 <p> 327 <code class="computeroutput"><span class="keyword">void</span><span class="special">*&</span></code> 328 </p> 329 </td> 330</tr> 331<tr> 332<td> 333 <p> 334 <code class="computeroutput"><span class="identifier">CStringList</span></code> 335 </p> 336 </td> 337<td> 338 <p> 339 <a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional 340 Range</a> 341 </p> 342 </td> 343<td> 344 <p> 345 <code class="computeroutput"><span class="identifier">CString</span><span class="special">&</span></code> 346 </p> 347 </td> 348</tr> 349<tr> 350<td> 351 <p> 352 <code class="computeroutput"><span class="identifier">CMapPtrToWord</span></code> 353 </p> 354 </td> 355<td> 356 <p> 357 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 358 </p> 359 </td> 360<td> 361 <p> 362 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">void</span><span class="special">*,</span><span class="identifier">WORD</span><span class="special">></span> 363 <span class="keyword">const</span></code> 364 </p> 365 </td> 366</tr> 367<tr> 368<td> 369 <p> 370 <code class="computeroutput"><span class="identifier">CMapPtrToPtr</span></code> 371 </p> 372 </td> 373<td> 374 <p> 375 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 376 </p> 377 </td> 378<td> 379 <p> 380 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">void</span><span class="special">*,</span><span class="keyword">void</span><span class="special">*></span> 381 <span class="keyword">const</span></code> 382 </p> 383 </td> 384</tr> 385<tr> 386<td> 387 <p> 388 <code class="computeroutput"><span class="identifier">CMapStringToOb</span></code> 389 </p> 390 </td> 391<td> 392 <p> 393 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 394 </p> 395 </td> 396<td> 397 <p> 398 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">String</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*></span> 399 <span class="keyword">const</span></code> 400 </p> 401 </td> 402</tr> 403<tr> 404<td> 405 <p> 406 <code class="computeroutput"><span class="identifier">CMapStringToString</span></code> 407 </p> 408 </td> 409<td> 410 <p> 411 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 412 </p> 413 </td> 414<td> 415 <p> 416 <code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code> 417 </p> 418 </td> 419</tr> 420<tr> 421<td> 422 <p> 423 <code class="computeroutput"><span class="identifier">CMapWordToOb</span></code> 424 </p> 425 </td> 426<td> 427 <p> 428 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 429 </p> 430 </td> 431<td> 432 <p> 433 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">WORD</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*></span> 434 <span class="keyword">const</span></code> 435 </p> 436 </td> 437</tr> 438<tr> 439<td> 440 <p> 441 <code class="computeroutput"><span class="identifier">CMapWordToPtr</span></code> 442 </p> 443 </td> 444<td> 445 <p> 446 <a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a> 447 </p> 448 </td> 449<td> 450 <p> 451 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">WORD</span><span class="special">,</span><span class="keyword">void</span><span class="special">*></span> 452 <span class="keyword">const</span></code> 453 </p> 454 </td> 455</tr> 456</tbody> 457</table></div> 458<p> 459 Other Boost.Range metafunctions are defined by the following. Let <code class="computeroutput"><span class="identifier">Range</span></code> be any type listed above and <code class="computeroutput"><span class="identifier">Ref</span></code> 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>. 460 <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">remove_const</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>, 461 <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>, 462 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>. 463 As for <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Range</span></code>, 464 see below. 465 </p> 466<p> 467 Adam Walling has provided the header <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">mfc_map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> 468 to add support for the map adaptor with MFC map types. 469 </p> 470</div> 471<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 472<td align="left"></td> 473<td align="right"><div class="copyright-footer">Copyright © 2003-2010 Thorsten Ottosen, 474 Neil Groves<p> 475 Distributed under the Boost Software License, Version 1.0. (See accompanying 476 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>) 477 </p> 478</div></td> 479</tr></table> 480<hr> 481<div class="spirit-nav"> 482<a accesskey="p" href="requirements.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="atl_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 483</div> 484</body> 485</html> 486