LLVM  3.7.0
Classes | Namespaces | Functions | Variables
STLExtras.h File Reference
#include "llvm/Support/Compiler.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdlib>
#include <functional>
#include <iterator>
#include <memory>
#include <utility>
Include dependency graph for STLExtras.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::identity< Ty >
 
struct  llvm::less_ptr< Ty >
 
struct  llvm::greater_ptr< Ty >
 
class  llvm::function_ref< Fn >
 An efficient, type-erasing, non-owning reference to a callable. More...
 
class  llvm::function_ref< Ret(Params...)>
 
class  llvm::mapped_iterator< RootIt, UnaryFunc >
 
struct  llvm::less_first
 Function object to check whether the first component of a std::pair compares less than the first component of another std::pair. More...
 
struct  llvm::less_second
 Function object to check whether the second component of a std::pair compares less than the second component of another std::pair. More...
 
struct  llvm::integer_sequence< T, I >
 Represents a compile-time sequence of integers. More...
 
struct  llvm::index_sequence< I >
 Alias for the common case of a sequence of size_ts. More...
 
struct  llvm::build_index_impl< N, I >
 
struct  llvm::build_index_impl< 0, I...>
 
struct  llvm::index_sequence_for< Ts >
 Creates a compile-time integer sequence for a parameter pack. More...
 
struct  llvm::FreeDeleter
 
struct  llvm::pair_hash< First, Second >
 
struct  llvm::less
 A functor like C++14's std::less<void> in its absence. More...
 
struct  llvm::equal
 A functor like C++14's std::equal<void> in its absence. More...
 
struct  llvm::deref< T >
 Binary functor that adapts to any other binary functor after dereferencing operands. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

template<class T >
void llvm::deleter (T *Ptr)
 
template<class Iterator , class Func >
mapped_iterator< Iterator, Func > llvm::operator+ (typename mapped_iterator< Iterator, Func >::difference_type N, const mapped_iterator< Iterator, Func > &X)
 
template<class ItTy , class FuncTy >
mapped_iterator< ItTy, FuncTy > llvm::map_iterator (const ItTy &I, FuncTy F)
 
template<class T , std::size_t N>
LLVM_CONSTEXPR size_t llvm::array_lengthof (T(&)[N])
 Find the length of an array. More...
 
template<typename T >
int llvm::array_pod_sort_comparator (const void *P1, const void *P2)
 Adapt std::less<T> for array_pod_sort. More...
 
template<class IteratorTy >
void llvm::array_pod_sort (IteratorTy Start, IteratorTy End)
 array_pod_sort - This sorts an array with the specified start and end extent. More...
 
template<class IteratorTy >
void llvm::array_pod_sort (IteratorTy Start, IteratorTy End, int(*Compare)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *))
 
template<typename Container >
void llvm::DeleteContainerPointers (Container &C)
 For a container of pointers, deletes the pointers and then clears the container. More...
 
template<typename Container >
void llvm::DeleteContainerSeconds (Container &C)
 In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container. More...
 
template<typename R , class UnaryPredicate >
bool llvm::all_of (R &&Range, UnaryPredicate &&P)
 Provide wrappers to std::all_of which take ranges instead of having to pass being/end explicitly. More...
 
template<class T , class... Args>
std::enable_if<!std::is_array
< T >::value, std::unique_ptr
< T > >::type 
llvm::make_unique (Args &&...args)
 Constructs a new T() with the given args and returns a unique_ptr<T> which owns the object. More...
 
template<class T >
std::enable_if< std::is_array
< T >::value &&std::extent< T >
::value==0, std::unique_ptr< T >
>::type 
llvm::make_unique (size_t n)
 Constructs a new T[n] with the given args and returns a unique_ptr<T[]> which owns the object. More...
 
template<class T , class... Args>
std::enable_if< std::extent< T >
::value!=0 >::type 
llvm::make_unique (Args &&...)=delete
 This function isn't used and is only here to provide better compile errors. More...
 

Variables

template<typename T >
int(*)(const void *, const void *) llvm::get_array_pod_sort_comparator (const T &)
 get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right. More...