24#ifndef MYSQL_ABI_HELPERS_DETAIL_ARRAY_BASE_H
25#define MYSQL_ABI_HELPERS_DETAIL_ARRAY_BASE_H
50template <
class Element_t,
class Array_t>
51 requires requires { std::is_trivial_v<Element_t>; }
58 std::ptrdiff_t
ssize()
const {
return (std::ptrdiff_t)
m_size; }
64 operator bool()
const {
return m_size != 0; }
71 assert((int32_t)index <
m_size);
93 assert((int32_t)index <
m_size);
Base class for specific implementations of standard-layout classes for arrays.
Definition: array_base.h:52
const Element_t * cend() const
Definition: array_base.h:110
Element_t * begin()
Definition: array_base.h:81
const Element_t * data() const
Definition: array_base.h:98
std::ptrdiff_t ssize() const
Definition: array_base.h:58
Element_t & operator[](std::size_t index)
Index operator (non-const).
Definition: array_base.h:70
bool empty() const
Definition: array_base.h:61
int32_t m_size
Number of elements in the array.
Definition: array_base.h:116
const Element_t * cbegin() const
Definition: array_base.h:107
std::size_t size() const
Definition: array_base.h:55
Array_t m_data
Array data.
Definition: array_base.h:119
const Element_t * end() const
Definition: array_base.h:104
const Element_t & operator[](std::size_t index) const
Index operator (const).
Definition: array_base.h:92
Element_t * end()
Definition: array_base.h:86
const Element_t * begin() const
Definition: array_base.h:101
Element_t * data()
Definition: array_base.h:76
Definition: array_base.h:38