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

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

#include <bits/c++config.h>
#include <bits/stl_iterator_base_types.h>
#include <bits/cpp_type_traits.h>
#include <bits/move.h>
#include <bits/stl_function.h>
#include <debug/formatter.h>
Include dependency graph for functions.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  __gnu_debug::__is_safe_random_iterator< _Iterator >
 
struct  __gnu_debug::__is_safe_random_iterator< _Safe_iterator< _Iterator, _Sequence > >
 
struct  __gnu_debug::_Insert_range_from_self_is_safe< _Sequence >
 
struct  __gnu_debug::_Is_contiguous_sequence< _Sequence >
 
class  __gnu_debug::_Safe_iterator< _Iterator, _Sequence >
 Safe iterator wrapper. More...
 
class  __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >
 Safe iterator wrapper. More...
 
struct  __gnu_debug::_Siter_base< _Iterator >
 

Namespaces

 __gnu_debug
 GNU debug classes for public use.
 

Functions

template<typename _Iterator >
_Siter_base< _Iterator >::iterator_type __gnu_debug::__base (_Iterator __it)
 Helper function to extract base iterator of random access safe iterator in order to reduce performance impact of debug mode. More...
 
template<typename _Iterator >
bool __gnu_debug::__check_dereferenceable (const _Iterator &)
 Assume that some arbitrary iterator is dereferenceable, because we can't prove that it isn't. More...
 
template<typename _Tp >
bool __gnu_debug::__check_dereferenceable (const _Tp *__ptr)
 Non-NULL pointers are dereferenceable. More...
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__check_dereferenceable (const _Safe_iterator< _Iterator, _Sequence > &__x)
 Safe iterators know if they are dereferenceable. More...
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__check_dereferenceable (const _Safe_local_iterator< _Iterator, _Sequence > &__x)
 Safe local iterators know if they are dereferenceable. More...
 
template<typename _ForwardIterator , typename _Tp >
bool __gnu_debug::__check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
 
template<typename _ForwardIterator , typename _Tp , typename _Pred >
bool __gnu_debug::__check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value, _Pred __pred)
 
template<typename _ForwardIterator , typename _Tp >
bool __gnu_debug::__check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
 
template<typename _ForwardIterator , typename _Tp , typename _Pred >
bool __gnu_debug::__check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value, _Pred __pred)
 
template<typename _Iterator >
bool __gnu_debug::__check_singular (const _Iterator &)
 
template<typename _Tp >
bool __gnu_debug::__check_singular (const _Tp *__ptr)
 Non-NULL pointers are nonsingular. More...
 
bool __gnu_debug::__check_singular_aux (const void *)
 
template<typename _InputIterator >
bool __gnu_debug::__check_sorted (const _InputIterator &__first, const _InputIterator &__last)
 
template<typename _InputIterator , typename _Predicate >
bool __gnu_debug::__check_sorted (const _InputIterator &__first, const _InputIterator &__last, _Predicate __pred)
 
template<typename _InputIterator >
bool __gnu_debug::__check_sorted_aux (const _InputIterator &, const _InputIterator &, std::input_iterator_tag)
 
template<typename _ForwardIterator >
bool __gnu_debug::__check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
 
template<typename _InputIterator , typename _Predicate >
bool __gnu_debug::__check_sorted_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::input_iterator_tag)
 
template<typename _ForwardIterator , typename _Predicate >
bool __gnu_debug::__check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, std::forward_iterator_tag)
 
template<typename _InputIterator1 , typename _InputIterator2 >
bool __gnu_debug::__check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _InputIterator2 &)
 
template<typename _InputIterator1 , typename _InputIterator2 , typename _Predicate >
bool __gnu_debug::__check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _InputIterator2 &, _Predicate __pred)
 
template<typename _InputIterator >
bool __gnu_debug::__check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, std::__true_type)
 
template<typename _InputIterator >
bool __gnu_debug::__check_sorted_set_aux (const _InputIterator &, const _InputIterator &, std::__false_type)
 
template<typename _InputIterator , typename _Predicate >
bool __gnu_debug::__check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, _Predicate __pred, std::__true_type)
 
template<typename _InputIterator , typename _Predicate >
bool __gnu_debug::__check_sorted_set_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::__false_type)
 
template<typename _CharT , typename _Integer >
const _CharT * __gnu_debug::__check_string (const _CharT *__s, const _Integer &__n __attribute__((__unused__)))
 Checks that __s is non-NULL or __n == 0, and then returns __s. More...
 
template<typename _CharT >
const _CharT * __gnu_debug::__check_string (const _CharT *__s)
 Checks that __s is non-NULL and then returns __s. More...
 
template<typename _InputIterator >
_InputIterator __gnu_debug::__check_valid_range (const _InputIterator &__first, const _InputIterator &__last __attribute__((__unused__)))
 
template<typename _Iterator , typename _Sequence , typename _InputIterator >
bool __gnu_debug::__foreign_iterator (const _Safe_iterator< _Iterator, _Sequence > &__it, _InputIterator __other, _InputIterator __other_end)
 
template<typename _Iterator , typename _Sequence , typename _Integral >
bool __gnu_debug::__foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence > &, _Integral, _Integral, std::__true_type)
 
template<typename _Iterator , typename _Sequence , typename _InputIterator >
bool __gnu_debug::__foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence > &__it, _InputIterator __other, _InputIterator __other_end, std::__false_type)
 
template<typename _Iterator , typename _Sequence , typename _OtherIterator >
bool __gnu_debug::__foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence > &__it, const _Safe_iterator< _OtherIterator, _Sequence > &__other, const _Safe_iterator< _OtherIterator, _Sequence > &)
 Handle debug iterators from the same type of container. More...
 
template<typename _Iterator , typename _Sequence , typename _OtherIterator , typename _OtherSequence >
bool __gnu_debug::__foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence > &__it, const _Safe_iterator< _OtherIterator, _OtherSequence > &, const _Safe_iterator< _OtherIterator, _OtherSequence > &)
 Handle debug iterators from different types of container. More...
 
template<typename _Iterator , typename _Sequence , typename _InputIterator >
bool __gnu_debug::__foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence > &__it, const _InputIterator &__other, const _InputIterator &__other_end)
 
template<typename _Iterator , typename _Sequence , typename _InputIterator >
bool __gnu_debug::__foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence > &__it, const _InputIterator &__other, const _InputIterator &__other_end, std::__true_type)
 
template<typename _Iterator , typename _Sequence , typename _InputIterator >
bool __gnu_debug::__foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence > &, const _InputIterator &, const _InputIterator &, std::__false_type)
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence > &__it, const typename _Sequence::value_type *__other)
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence > &,...)
 
template<typename _InputIterator >
bool __gnu_debug::__valid_range (const _InputIterator &__first, const _InputIterator &__last)
 Don't know what these iterators are, or if they are even iterators (we may get an integral type for InputIterator), so see if they are integral and pass them on to the next phase otherwise. More...
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__valid_range (const _Safe_iterator< _Iterator, _Sequence > &__first, const _Safe_iterator< _Iterator, _Sequence > &__last)
 Safe iterators know how to check if they form a valid range. More...
 
template<typename _Iterator , typename _Sequence >
bool __gnu_debug::__valid_range (const _Safe_local_iterator< _Iterator, _Sequence > &__first, const _Safe_local_iterator< _Iterator, _Sequence > &__last)
 Safe local iterators know how to check if they form a valid range. More...
 
template<typename _Integral >
bool __gnu_debug::__valid_range_aux (const _Integral &, const _Integral &, std::__true_type)
 We say that integral types for a valid range, and defer to other routines to realize what to do with integral types instead of iterators. More...
 
template<typename _InputIterator >
bool __gnu_debug::__valid_range_aux (const _InputIterator &__first, const _InputIterator &__last, std::__false_type)
 We have iterators, so figure out what kind of iterators that are to see if we can check the range ahead of time. More...
 
template<typename _RandomAccessIterator >
bool __gnu_debug::__valid_range_aux2 (const _RandomAccessIterator &__first, const _RandomAccessIterator &__last, std::random_access_iterator_tag)
 If the distance between two random access iterators is nonnegative, assume the range is valid. More...
 
template<typename _InputIterator >
bool __gnu_debug::__valid_range_aux2 (const _InputIterator &, const _InputIterator &, std::input_iterator_tag)
 Can't test for a valid range with input iterators, because iteration may be destructive. More...
 

Detailed Description

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