mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-19 18:42:06 -05:00
56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
|
|
[section:traits Iterator Traits]
|
|
|
|
`std::iterator_traits` provides access to five associated types
|
|
of any iterator: its `value_type`, `reference`, `pointer`,
|
|
`iterator_category`, and `difference_type`. Unfortunately,
|
|
such a "multi-valued" traits template can be difficult to use in a
|
|
metaprogramming context. `<boost/iterator/iterator_traits.hpp>`
|
|
provides access to these types using a standard metafunctions_.
|
|
|
|
[h2 Synopsis]
|
|
|
|
Header `<boost/iterator/iterator_traits.hpp>`:
|
|
|
|
template <class Iterator>
|
|
struct iterator_value
|
|
{
|
|
typedef typename
|
|
std::iterator_traits<Iterator>::value_type
|
|
type;
|
|
};
|
|
|
|
template <class Iterator>
|
|
struct iterator_reference
|
|
{
|
|
typedef typename
|
|
std::iterator_traits<Iterator>::reference
|
|
type;
|
|
};
|
|
|
|
template <class Iterator>
|
|
struct iterator_pointer
|
|
{
|
|
typedef typename
|
|
std::iterator_traits<Iterator>::pointer
|
|
type;
|
|
};
|
|
|
|
template <class Iterator>
|
|
struct iterator_difference
|
|
{
|
|
typedef typename
|
|
detail::iterator_traits<Iterator>::difference_type
|
|
type;
|
|
};
|
|
|
|
template <class Iterator>
|
|
struct iterator_category
|
|
{
|
|
typedef typename
|
|
detail::iterator_traits<Iterator>::iterator_category
|
|
type;
|
|
};
|
|
|
|
[endsect]
|