• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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">&lt;</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">&gt;</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">&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">CArray</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</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">T</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">CList</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</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">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</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">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">&lt;</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">*&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*&gt;</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">&amp;</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">&amp;</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">*&amp;</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">*&amp;</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">&amp;</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">&amp;</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">&amp;</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">*&amp;</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">*&amp;</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">&amp;</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">&lt;</span><span class="keyword">void</span><span class="special">*,</span><span class="identifier">WORD</span><span class="special">&gt;</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">&lt;</span><span class="keyword">void</span><span class="special">*,</span><span class="keyword">void</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">String</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*&gt;</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">&amp;</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">&lt;</span><span class="identifier">WORD</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">WORD</span><span class="special">,</span><span class="keyword">void</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
460        <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">remove_const</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>,
461        <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>,
462        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>.
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">&lt;</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">&gt;</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