|
template<class F>
requires (std::is_invocable_r_v<T, F, size_t>) |
| constexpr | Vector (size_t size, F &&f) |
template<std::ranges::forward_range R, class F>
requires (std::is_invocable_r_v<T, F, decltype(*std::ranges::begin(range))> && !std::is_same_v<std::decay_t<R>, Vector>) |
| constexpr | Vector (R &&range, F &&f) |
Available in C++23 but not absl.
|
| template<std::ranges::forward_range R> |
| constexpr void | insert_range (Base::const_iterator pos, R &&r) |
| template<std::ranges::forward_range R> |
| constexpr void | append_range (R &&r) |
| constexpr auto | span () noexcept |
| constexpr auto | span () const noexcept |
| constexpr auto | view () const noexcept |
template<class T, size_t N = Default_Inlined_Size<T>, class A = std::allocator<T>>
class fe::Vector< T, N, A >
This is a thin wrapper for absl::InlinedVector<T, N, A> which is a drop-in replacement for std::vector<T, A>.
In addition, there are generator-like/lambda-based constructors and conversions to Span available.
- Note
- Without FE_ABSL this falls back to std::vector<T, A> and
N has no effect.
Definition at line 39 of file vector.h.
template<class T, size_t N = Default_Inlined_Size<T>, class A = std::allocator<T>>
template<class F>
requires (std::is_invocable_r_v<T, F, size_t>)
| fe::Vector< T, N, A >::Vector |
( |
size_t | size, |
|
|
F && | f ) |
|
inlineexplicitconstexpr |
template<class T, size_t N = Default_Inlined_Size<T>, class A = std::allocator<T>>
template<std::ranges::forward_range R, class F>
requires (std::is_invocable_r_v<T, F, decltype(*std::ranges::begin(range))> && !std::is_same_v<std::decay_t<R>, Vector>)
| fe::Vector< T, N, A >::Vector |
( |
R && | range, |
|
|
F && | f ) |
|
inlineexplicitconstexpr |