![]() |
WPILibC++ 2027.0.0-alpha-2
|
This file defines the SmallVector class. More...
#include "wpi/Compiler.h"#include <algorithm>#include <cassert>#include <cstddef>#include <cstdint>#include <cstdlib>#include <cstring>#include <functional>#include <initializer_list>#include <iterator>#include <limits>#include <memory>#include <new>#include <span>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| class | wpi::SmallVectorBase |
| This is all the stuff common to all SmallVectors. More... | |
| struct | wpi::SmallVectorAlignmentAndSize< T, typename > |
| Figure out the offset of the first element. More... | |
| class | wpi::SmallVectorTemplateCommon< T, typename > |
| This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More... | |
| class | wpi::SmallVectorTemplateBase< T, bool > |
| SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's. More... | |
| class | wpi::SmallVectorTemplateBase< T, true > |
| SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable T's. More... | |
| class | wpi::SmallVectorImpl< T > |
| This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More... | |
| struct | wpi::SmallVectorStorage< T, N > |
| Storage for the SmallVector elements. More... | |
| struct | wpi::SmallVectorStorage< T, 0 > |
| We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More... | |
| struct | wpi::CalculateSmallVectorDefaultInlinedElements< T > |
Helper class for calculating the default number of inline elements for SmallVector<T>. More... | |
| class | wpi::SmallVector< T, N > |
| This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small. More... | |
Namespaces | |
| namespace | wpi |
| namespace | std |
Typedefs | |
| template<class Iterator > | |
| using | wpi::EnableIfConvertibleToInputIterator |
| template<typename RangeType > | |
| using | wpi::ValueTypeFromRangeType |
Functions | |
| template<typename T , unsigned N> | |
| size_t | wpi::capacity_in_bytes (const SmallVector< T, N > &X) |
| template<unsigned Size, typename R > | |
| SmallVector< ValueTypeFromRangeType< R >, Size > | wpi::to_vector (R &&Range) |
| Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector. | |
| template<typename R > | |
| SmallVector< ValueTypeFromRangeType< R > > | wpi::to_vector (R &&Range) |
| template<typename Out , unsigned Size, typename R > | |
| SmallVector< Out, Size > | wpi::to_vector_of (R &&Range) |
| template<typename Out , typename R > | |
| SmallVector< Out > | wpi::to_vector_of (R &&Range) |
| template<typename T , typename Pred > | |
| SmallVectorImpl< T >::size_type | wpi::erase_if (SmallVectorImpl< T > &c, Pred pred) |
| template<typename T > | |
| void | std::swap (wpi::SmallVectorImpl< T > &LHS, wpi::SmallVectorImpl< T > &RHS) |
| Implement std::swap in terms of SmallVector swap. | |
| template<typename T , unsigned N> | |
| void | std::swap (wpi::SmallVector< T, N > &LHS, wpi::SmallVector< T, N > &RHS) |
| Implement std::swap in terms of SmallVector swap. | |
Variables | |
| template<typename T , unsigned N> | |
| class LLVM_GSL_OWNER | wpi::SmallVector |
Forward declaration of SmallVector so that calculateSmallVectorDefaultInlinedElements can reference sizeof(SmallVector<T, 0>). | |
This file defines the SmallVector class.