cuda::experimental::stf::small_vector

Defined in include/cuda/experimental/__stf/utility/memory.cuh

template<typename T, size_t small_cap>
class small_vector

Public Types

using value_type = T
using size_type = ::std::size_t
using difference_type = ::std::ptrdiff_t
using reference = value_type&
using const_reference = const value_type&
using pointer = value_type*
using const_pointer = const value_type*
using iterator = pointer
using const_iterator = const_pointer
using reverse_iterator = ::std::reverse_iterator<iterator>
using const_reverse_iterator = ::std::reverse_iterator<const_iterator>

Public Functions

small_vector() = default
inline small_vector(const small_vector &rhs)
inline small_vector(small_vector &&rhs) noexcept
inline small_vector(::std::initializer_list<T> init)
inline small_vector &operator=(const small_vector &rhs)
inline small_vector &operator=(small_vector &&rhs) noexcept
small_vector &operator=(::std::initializer_list<T> ilist)
inline ~small_vector()
inline T &operator[](size_t pos)
inline const T &operator[](size_t pos) const
T &at(size_t pos)
const T &at(size_t pos) const
inline T &front()
inline const T &front() const
T &back()
const T &back() const
T *data() noexcept
const T *data() const noexcept
inline iterator begin() noexcept
inline const_iterator begin() const noexcept
inline const_iterator cbegin() const noexcept
inline iterator end() noexcept
inline const_iterator end() const noexcept
inline const_iterator cend() const noexcept
reverse_iterator rbegin() noexcept
const_reverse_iterator rbegin() const noexcept
const_reverse_iterator crbegin() const noexcept
reverse_iterator rend() noexcept
const_reverse_iterator rend() const noexcept
const_reverse_iterator crend() const noexcept
inline bool empty() const noexcept
inline size_t size() const noexcept
inline size_t max_size() const noexcept
inline void reserve(size_t new_cap)
inline size_t capacity() const noexcept
void shrink_to_fit()
inline void clear() noexcept
iterator insert(const_iterator pos, const T &value)
iterator insert(const_iterator pos, T &&value)
iterator insert(const_iterator pos, size_t count, const T &value)
template<class InputIt>
inline iterator insert(iterator pos, InputIt first, InputIt last)
iterator insert(const_iterator pos, ::std::initializer_list<T> ilist)
template<class ...Args>
iterator emplace(const_iterator pos, Args&&... args)
iterator erase(const_iterator pos)
inline iterator erase(iterator first, iterator last)
inline void push_back(const T &value)
inline void push_back(T &&value)
template<class ...Args>
void emplace_back(Args&&... args)
inline void pop_back()
inline void resize(size_t new_size)
inline void resize(size_t new_size, const value_type &value)
inline void swap(small_vector &other) noexcept

Public Members

::std::aligned_storage_t<sizeof(T), alignof(T)> small_[small_cap]
::std::aligned_storage_t<sizeof(::std::vector<T>), alignof(::std::vector<T>)> big_

Friends

inline friend bool operator==(const small_vector &lhs, const small_vector &rhs)