GNU g++  v5.2.1
GNU Standard C++
safe_iterator.h File Reference

This file is a GNU debug extension to the Standard C++ Library. More...

#include <debug/debug.h>
#include <debug/macros.h>
#include <debug/functions.h>
#include <debug/safe_base.h>
#include <bits/stl_pair.h>
#include <ext/type_traits.h>
#include <debug/safe_iterator.tcc>
Include dependency graph for safe_iterator.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  __gnu_debug::_BeforeBeginHelper< _Sequence >
 Helper struct to deal with sequence offering a before_begin iterator. More...
 
class  __gnu_debug::_Safe_iterator< _Iterator, _Sequence >
 Safe iterator wrapper. More...
 
struct  __gnu_debug::_Safe_iterator< _Iterator, _Sequence >::_Attach_single
 

Namespaces

 __gnu_debug
 GNU debug classes for public use.
 

Enumerations

enum  __gnu_debug::_Distance_precision {
  __gnu_debug::__dp_equality,
  __gnu_debug::__dp_sign,
  __gnu_debug::__dp_exact
}
 The precision to which we can calculate the distance between two iterators. More...
 

Functions

bool __gnu_debug::__check_singular_aux (const _Safe_iterator_base *__x)
 Iterators that derive from _Safe_iterator_base can be determined singular or non-singular. More...
 
template<typename _Iterator >
std::pair< typename std::iterator_traits< _Iterator >::difference_type, _Distance_precision > __gnu_debug::__get_distance (const _Iterator &__lhs, const _Iterator &__rhs, std::random_access_iterator_tag)
 Determine the distance between two iterators with some known precision. More...
 
template<typename _Iterator >
std::pair< typename std::iterator_traits< _Iterator >::difference_type, _Distance_precision > __gnu_debug::__get_distance (const _Iterator &__lhs, const _Iterator &__rhs, std::forward_iterator_tag)
 
template<typename _Iterator >
std::pair< typename std::iterator_traits< _Iterator >::difference_type, _Distance_precision > __gnu_debug::__get_distance (const _Iterator &__lhs, const _Iterator &__rhs)
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator!= (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator!= (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
_Safe_iterator< _Iterator, _Sequence > __gnu_debug::operator+ (typename _Safe_iterator< _Iterator, _Sequence >::difference_type __n, const _Safe_iterator< _Iterator, _Sequence > &__i) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
_Safe_iterator< _IteratorL, _Sequence >::difference_type __gnu_debug::operator- (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
_Safe_iterator< _Iterator, _Sequence >::difference_type __gnu_debug::operator- (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator< (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator< (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator<= (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator<= (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator== (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator== (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator> (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator> (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _IteratorL , typename _IteratorR , typename _Sequence >
bool __gnu_debug::operator>= (const _Safe_iterator< _IteratorL, _Sequence > &__lhs, const _Safe_iterator< _IteratorR, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::operator>= (const _Safe_iterator< _Iterator, _Sequence > &__lhs, const _Safe_iterator< _Iterator, _Sequence > &__rhs) _GLIBCXX_NOEXCEPT
 

Detailed Description

This file is a GNU debug extension to the Standard C++ Library.