Reference

flex_vector

template <typename T, typename MemoryPolicy = default_memory_policy, detail::rbts::bits_t B = default_bits, detail::rbts::bits_t BL = detail::rbts::derive_bits_leaf<T, MemoryPolicy, B>>
class immer::flex_vector

This a nice flexible vector that is yet to be documented. It includes bold and emphasized stuff that can be typed.

And blocks of code, for example!

Public Types

using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::memory_policy = MemoryPolicy
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::value_type = T
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::reference = const T&
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::size_type = std::size_t
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::difference_type = std::ptrdiff_t
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::const_reference = const T&
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::iterator = detail::rbts::rrbtree_iterator<T, MemoryPolicy, B, BL>
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::const_iterator = iterator
using >
using immer::flex_vector<T, MemoryPolicy, B, BL>::reverse_iterator = std::reverse_iterator<iterator>

Public Functions

flex_vector()
flex_vector(vector<T, MemoryPolicy, B, BL> v)
iterator begin() const
iterator end() const
reverse_iterator rbegin() const
reverse_iterator rend() const
std::size_t size() const
bool empty() const
reference operator[](size_type index) const
flex_vector push_back(value_type value) const
flex_vector assoc(std::size_t idx, value_type value) const
template <typename FnT>
flex_vector update(std::size_t idx, FnT &&fn) const
flex_vector take(std::size_t elems) const
flex_vector drop(std::size_t elems) const
template <typename Step, typename State>
State reduce(Step &&step, State &&init) const
flex_vector push_front(value_type value) const

Public Static Attributes

constexpr auto bits
constexpr auto bits_leaf

Friends

flex_vector operator+(const flex_vector &l, const flex_vector &r)