libcaramel
dynamic_array.hpp File Reference

Contains the dynamic_array API. More...

#include <libcaramel/iterators/random_iterator.hpp>
#include <libcaramel/memory/memory_allocator.hpp>
#include <libcaramel/util/types.hpp>
#include <gsl/gsl_assert>
#include <concepts>
#include <cstdint>
#include <initializer_list>
#include <limits>
#include <memory>
#include <type_traits>

Go to the source code of this file.

Classes

struct  caramel::in_place_t
 
class  caramel::basic_dynamic_array< Any, Size, Allocator >
 A resizable array with a small statically allocated storage buffer. More...
 
class  caramel::small_dynamic_array< Any, Size >
 A resizable array with a small statically allocated storage buffer. More...
 
class  caramel::dynamic_array< Any >
 A resizable array. More...
 

Functions

template<typename First , typename Second >
auto caramel::detail::synth_three_way (const First &lhs, const Second &rhs)
 
template<std::equality_comparable Any, i64_t SizeOne, i64_t SizeTwo, typename allocator >
constexpr auto caramel::operator== (const basic_dynamic_array< Any, SizeOne, allocator > &lhs, const basic_dynamic_array< Any, SizeTwo, allocator > &rhs) -> bool
 
template<typename Any , i64_t SizeOne, i64_t SizeTwo, typename allocator >
constexpr auto caramel::operator<=> (const basic_dynamic_array< Any, SizeOne, allocator > &lhs, const basic_dynamic_array< Any, SizeTwo, allocator > &rhs)
 
template<typename Iter , i64_t Size = 0, typename Allocator = memory_allocator<typename std::iterator_traits<Iter>::value_type>>
 caramel::basic_dynamic_array (Iter, Iter) -> basic_dynamic_array< typename std::iterator_traits< Iter >::value_type, Size, Allocator >
 
template<typename Any , typename... U, typename Allocator = memory_allocator<Any>>
 caramel::basic_dynamic_array (Any, U...) -> basic_dynamic_array< Any, 1+sizeof...(U), Allocator >
 
template<std::equality_comparable Any, i64_t SizeOne, i64_t SizeTwo>
constexpr auto caramel::operator== (const small_dynamic_array< Any, SizeOne > &lhs, const small_dynamic_array< Any, SizeTwo > &rhs) -> bool
 
template<typename Any , i64_t SizeOne, i64_t SizeTwo>
constexpr auto caramel::operator<=> (const small_dynamic_array< Any, SizeOne > &lhs, const small_dynamic_array< Any, SizeTwo > &rhs)
 
template<typename Iter , i64_t Size = 0>
 caramel::small_dynamic_array (Iter, Iter) -> small_dynamic_array< typename std::iterator_traits< Iter >::value_type, Size >
 
template<typename Any , typename... U>
 caramel::small_dynamic_array (Any, U...) -> small_dynamic_array< Any, 1+sizeof...(U)>
 
template<std::equality_comparable Any>
constexpr auto caramel::operator== (const dynamic_array< Any > &lhs, const dynamic_array< Any > &rhs) -> bool
 
template<typename Any >
constexpr auto caramel::operator<=> (const dynamic_array< Any > &lhs, const dynamic_array< Any > &rhs)
 
template<typename Iter >
 caramel::dynamic_array (Iter, Iter) -> dynamic_array< typename std::iterator_traits< Iter >::value_type >
 

Variables

constexpr in_place_t caramel::in_place
 

Detailed Description

Contains the dynamic_array API.