LIEF: Library to Instrument Executable Formats Version 0.16.0
Loading...
Searching...
No Matches
iterators.hpp File Reference
#include <cmath>
#include <cstddef>
#include <cassert>
#include <iterator>
#include <functional>
#include <algorithm>
#include <type_traits>
#include <vector>
Include dependency graph for iterators.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LIEF::ref_iterator< T, U, ITERATOR_T >
 Iterator which returns reference on container's values. More...
 
class  LIEF::filter_iterator< T, U, ITERATOR_T >
 Iterator which return a ref on container's values given predicates. More...
 
class  LIEF::iterator_range< IteratorT >
 
class  LIEF::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
 CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More...
 
class  LIEF::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
 CRTP base class for adapting an iterator to a different type. More...
 
struct  LIEF::pointee_iterator< WrappedIteratorT, T >
 An iterator type that allows iterating over the pointees via some other iterator. More...
 
class  LIEF::pointer_iterator< WrappedIteratorT, T >
 

Namespaces

namespace  LIEF
 LIEF namespace.
 

Typedefs

template<class T >
using LIEF::decay_t = typename std::decay<T>::type
 
template<class T >
using LIEF::add_const_t = typename std::add_const<T>::type
 
template<class T >
using LIEF::remove_const_t = typename std::remove_const<T>::type
 
template<class T >
using LIEF::add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type
 
template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
using LIEF::const_ref_iterator = ref_iterator<CT, U, typename decay_t<CT>::const_iterator>
 Iterator which return const ref on container's values.
 
template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
using LIEF::const_filter_iterator = filter_iterator<CT, U, typename decay_t<CT>::const_iterator>
 Iterator which return a const ref on container's values given predicates.
 
template<typename WrappedIteratorT , typename T1 = typename std::remove_reference<decltype( **std::declval<WrappedIteratorT>())>::type, typename T2 = typename std::add_pointer<T1>::type>
using LIEF::raw_pointer_iterator
 

Functions

template<class T >
iterator_range< T > LIEF::make_range (T &&x, T &&y)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointee_iterator< WrappedIteratorT > > LIEF::make_pointee_range (RangeT &&Range)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointer_iterator< WrappedIteratorT > > LIEF::make_pointer_range (RangeT &&Range)