array, vector など各種コンテナのイテレータ
More...
#include <y3c/iterator.h>
|
| contiguous_iterator (element_type *ptr, internal::life_observer observer, const std::string *type_name) noexcept |
|
| contiguous_iterator (element_type *ptr, internal::life_observer observer, const std::string *type_name, bool valid, const std::string &func, internal::skip_trace_tag={}) |
|
template<typename T , typename std::enable_if< std::is_same< const T, element_type >::value, std::nullptr_t >::type = nullptr> |
| contiguous_iterator (const contiguous_iterator< T > &other) |
|
| contiguous_iterator (const contiguous_iterator &other) |
|
contiguous_iterator & | operator= (const contiguous_iterator &other) |
|
| ~contiguous_iterator ()=default |
|
const life_observer & | get_observer_ () const |
|
template<typename = internal::skip_trace_tag> |
reference | operator* () const |
|
template<typename = internal::skip_trace_tag> |
element_type * | operator-> () const |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator & | operator++ () |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator | operator++ (int) |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator & | operator-- () |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator | operator-- (int) |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator & | operator+= (std::ptrdiff_t n) |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator & | operator-= (std::ptrdiff_t n) |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator | operator+ (std::ptrdiff_t n) const |
|
template<typename = internal::skip_trace_tag> |
contiguous_iterator | operator- (std::ptrdiff_t n) const |
|
std::ptrdiff_t | operator- (const contiguous_iterator &other) const noexcept |
|
template<typename = internal::skip_trace_tag> |
reference | operator[] (std::ptrdiff_t n) const |
|
| operator wrap< contiguous_iterator & > () noexcept |
|
| operator wrap< const contiguous_iterator & > () const noexcept |
|
wrap< contiguous_iterator * > | operator& () |
|
wrap< const contiguous_iterator * > | operator& () const |
|
template<typename element_type>
class y3c::internal::contiguous_iterator< element_type >
array, vector など各種コンテナのイテレータ
operator*
, operator->
, operator[]
時にnullptrチェックと範囲外アクセスチェックをする 使用時にnullptrでないかと範囲外でないかのチェックを行う。
- また
operator*
, operator[]
が返す参照はラップ済み (y3c::wrap<T&>)
operator&
は未実装 (要るのか?)
- Examples
- array-iter.cc, vector-iter-erase.cc, vector-iter-reallocate.cc, and vector-iter.cc.
◆ difference_type
template<typename element_type >
◆ iterator_category
template<typename element_type >
◆ pointer
template<typename element_type >
◆ reference
template<typename element_type >
◆ value_type
template<typename element_type >
◆ contiguous_iterator() [1/4]
template<typename element_type >
◆ contiguous_iterator() [2/4]
template<typename element_type >
◆ contiguous_iterator() [3/4]
template<typename element_type >
template<typename T , typename std::enable_if< std::is_same< const T, element_type >::value, std::nullptr_t >::type = nullptr>
◆ contiguous_iterator() [4/4]
template<typename element_type >
◆ ~contiguous_iterator()
template<typename element_type >
◆ get_observer_()
template<typename element_type >
◆ operator wrap< const contiguous_iterator & >()
template<typename element_type >
◆ operator wrap< contiguous_iterator & >()
template<typename element_type >
◆ operator&() [1/2]
template<typename element_type >
◆ operator&() [2/2]
template<typename element_type >
◆ operator*()
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator+()
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator++() [1/2]
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator++() [2/2]
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator+=()
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator-() [1/2]
template<typename element_type >
◆ operator-() [2/2]
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator--() [1/2]
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator--() [2/2]
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator-=()
template<typename element_type >
template<typename = internal::skip_trace_tag>
◆ operator->()
template<typename element_type >
template<typename = internal::skip_trace_tag>
element_type * operator-> |
( |
| ) |
const |
|
inline |
◆ operator=()
template<typename element_type >
◆ operator[]()
template<typename element_type >
template<typename = internal::skip_trace_tag>
reference operator[] |
( |
std::ptrdiff_t |
n | ) |
const |
|
inline |
◆ contiguous_iterator
template<typename element_type >
template<typename T >
◆ life_observer
template<typename element_type >
◆ y3c::internal::unwrap
template<typename element_type >
The documentation for this class was generated from the following file: