16 template <
typename Value, std::
size_t Size = 5>
27 template<
typename Itr>
30 while (begin != end) {
35 constexpr
vector(std::initializer_list<Value> init)
40 constexpr
vector() =
default;
54 constexpr
const Value &
operator[](
const std::size_t t_pos)
const {
61 constexpr Value &
at(
const std::size_t t_pos) {
65 throw std::range_error(
"Index past end of vector");
71 constexpr
const Value &
at(
const std::size_t t_pos)
const {
73 throw std::range_error(
"Index past end of vector");
82 throw std::range_error(
"Index past end of vector");
91 constexpr
const Value &
back()
const {
93 throw std::range_error(
"Index past end of vector");
101 throw std::range_error(
"Index past end of vector");
114 constexpr
const Value*
data()
const {
123 template<
typename T,
size_t Size1,
size_t Size2>
126 auto first1 = x.
begin();
127 auto first2 = y.
begin();
128 const auto last1 = x.
begin();
129 const auto last2 = y.
begin();
130 while (first1 != last1 && first2 != last2 && *first1 == *first2) {
133 return first1 == last1 && first2 == last2;
140 template <
typename Value, std::
size_t S1, std::
size_t S2>
143 copy(a.
cbegin(), a.
cend(), back_insert_iterator(v));
144 copy(b.
cbegin(), b.
cend(), back_insert_iterator(v));
148 template <std::
size_t Count = 5>
153 #endif //CX_STRINGLIST
constexpr auto end() const
Definition: cx_stringlist.h:48
constexpr Value & back()
Definition: cx_stringlist.h:99
constexpr bool operator==(const static_string &x, const static_string &y)
Definition: cx_string.h:49
typename storage_t::const_reference const_reference
Definition: cx_stringlist.h:25
constexpr const Value * data() const
Definition: cx_stringlist.h:114
typename storage_t::const_iterator const_iterator
Definition: cx_stringlist.h:22
constexpr vector(Itr begin, const Itr &end)
Definition: cx_stringlist.h:28
constexpr Value & operator[](const std::size_t t_pos)
Definition: cx_stringlist.h:57
constexpr const Value & operator[](const std::size_t t_pos) const
Definition: cx_stringlist.h:54
typename storage_t::reference reference
Definition: cx_stringlist.h:24
constexpr auto end()
Definition: cx_stringlist.h:49
constexpr vector(std::initializer_list< Value > init)
Definition: cx_stringlist.h:35
constexpr auto size() const
Definition: cx_stringlist.h:109
Value value_type
Definition: cx_stringlist.h:23
constexpr auto cend() const
Definition: cx_stringlist.h:52
constexpr auto begin()
Definition: cx_stringlist.h:43
constexpr Value & at(const std::size_t t_pos)
Definition: cx_stringlist.h:61
constexpr Value & push_back(Value t_v)
Definition: cx_stringlist.h:80
constexpr auto empty() const
Definition: cx_stringlist.h:110
Definition: cx_stringlist.h:17
constexpr const Value & back() const
Definition: cx_stringlist.h:91
constexpr const Value & at(const std::size_t t_pos) const
Definition: cx_stringlist.h:71
std::array< Value, Size > storage_t
Definition: cx_stringlist.h:19
constexpr auto operator+(vector< Value, S1 > a, vector< Value, S2 > b)
Definition: cx_stringlist.h:141
storage_t m_data
Definition: cx_stringlist.h:119
constexpr vector()=default
typename storage_t::iterator iterator
Definition: cx_stringlist.h:21
constexpr auto cbegin() const
Definition: cx_stringlist.h:51
constexpr auto capacity() const
Definition: cx_stringlist.h:108
std::size_t m_size
Definition: cx_stringlist.h:120
constexpr void clear()
Definition: cx_stringlist.h:112
constexpr auto begin() const
Definition: cx_stringlist.h:42