Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

ATL Ranges

If the <boost/range/atl.hpp> is included before or after Boost.Range headers, the ATL collections and strings become models of Range. The table below lists the Traversal Category and range_reference of ATL ranges.

Range

Traversal Category

range_reference<Range>::type

CAtlArray<E,ET>

Random Access Range

E&

CAutoPtrArray<E>

Random Access Range

E&

CInterfaceArray<I,pi>

Random Access Range

CComQIPtr<I,pi>&

CAtlList<E,ET>

Bidirectional Range

E&

CAutoPtrList<E>

Bidirectional Range

E&

CHeapPtrList<E,A>

Bidirectional Range

E&

CInterfaceList<I,pi>

Bidirectional Range

CComQIPtr<I,pi>&

CAtlMap<K,V,KT,VT>

Forward Range

Range::CPair&

CRBTree<K,V,KT,VT>

Bidirectional Range

Range::CPair&

CRBMap<K,V,KT,VT>

Bidirectional Range

Range::CPair&

CRBMultiMap<K,V,KT,VT>

Bidirectional Range

Range::CPair&

CSimpleStringT<B,b>

Random Access Range

B&

CStringT<B,ST>

Random Access Range

B&

CFixedStringT<S,n>

Random Access Range

range_reference<S>::type

CComBSTR

Random Access Range

OLECHAR&

CSimpleArray<T,TE>

Random Access Range

T&

Other Boost.Range metafunctions are defined by the following. Let Range be any type listed above and Ref be the same as range_reference<Range>::type. range_value<Range>::type is the same as remove_reference<Ref>::type, range_difference<Range>::type is the same as std::ptrdiff_t, and range_pointer<Range>::type is the same as add_pointer<remove_reference<Ref>::type>::type. As for const Range, see below.


PrevUpHomeNext