libdonut  2.3.2
Application framework for cross-platform game development in C++20
Public Types | Public Member Functions | Friends | List of all members
donut::json::Array Class Reference

JSON array type whose API mimics that of std::vector<Value>. More...

#include <donut/json.hpp>

Public Types

using value_type = Value
 
using size_type = typename std::vector< value_type >::size_type
 
using difference_type = typename std::vector< value_type >::difference_type
 
using reference = typename std::vector< value_type >::reference
 
using const_reference = typename std::vector< value_type >::const_reference
 
using pointer = typename std::vector< value_type >::pointer
 
using const_pointer = typename std::vector< value_type >::const_pointer
 
using iterator = typename std::vector< value_type >::iterator
 
using const_iterator = typename std::vector< value_type >::const_iterator
 
using reverse_iterator = typename std::vector< value_type >::reverse_iterator
 
using const_reverse_iterator = typename std::vector< value_type >::const_reverse_iterator
 

Public Member Functions

 Array () noexcept
 
 ~Array ()
 
template<typename InputIt >
 Array (InputIt first, InputIt last)
 
 Array (size_type count, const Value &value)
 
 Array (std::initializer_list< value_type > ilist)
 
 Array (const Array &other)
 
 Array (Array &&other) noexcept
 
Arrayoperator= (const Array &other)
 
Arrayoperator= (Array &&other) noexcept
 
Arrayoperator= (std::initializer_list< value_type > ilist)
 
void swap (Array &other) noexcept
 
pointer data () noexcept
 
const_pointer data () const noexcept
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
size_type capacity () const noexcept
 
bool empty () const noexcept
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
reference at (size_type pos)
 
const_reference at (size_type pos) const
 
reference operator[] (size_type pos)
 
const_reference operator[] (size_type pos) const
 
bool operator== (const Array &other) const
 
std::partial_ordering operator<=> (const Array &other) const noexcept
 
void clear () noexcept
 
void reserve (size_type newCap)
 
void shrink_to_fit ()
 
iterator insert (const_iterator pos, const Value &value)
 
iterator insert (const_iterator pos, Value &&value)
 
iterator insert (const_iterator pos, size_type count, const Value &value)
 
template<typename InputIt >
iterator insert (const_iterator pos, InputIt first, InputIt last)
 
iterator insert (const_iterator pos, std::initializer_list< value_type > ilist)
 
template<typename... Args>
iterator emplace (const_iterator pos, Args &&... args)
 
iterator erase (const_iterator pos)
 
iterator erase (const_iterator first, const_iterator last)
 
void push_back (const Value &value)
 
void push_back (Value &&value)
 
template<typename... Args>
reference emplace_back (Args &&... args)
 
void pop_back ()
 
void resize (size_type count)
 
void resize (size_type count, const Value &value)
 

Friends

void swap (Array &a, Array &b) noexcept
 
template<typename U >
size_type erase (Array &container, const U &value)
 
template<typename Predicate >
size_type erase_if (Array &container, Predicate predicate)
 

Detailed Description

JSON array type whose API mimics that of std::vector<Value>.

Member Typedef Documentation

◆ value_type

◆ size_type

using donut::json::Array::size_type = typename std::vector<value_type>::size_type

◆ difference_type

◆ reference

using donut::json::Array::reference = typename std::vector<value_type>::reference

◆ const_reference

◆ pointer

using donut::json::Array::pointer = typename std::vector<value_type>::pointer

◆ const_pointer

◆ iterator

using donut::json::Array::iterator = typename std::vector<value_type>::iterator

◆ const_iterator

◆ reverse_iterator

◆ const_reverse_iterator

Constructor & Destructor Documentation

◆ Array() [1/6]

donut::json::Array::Array ( )
inlinedefaultnoexcept

◆ ~Array()

donut::json::Array::~Array ( )
inlinedefault

◆ Array() [2/6]

template<typename InputIt >
donut::json::Array::Array ( InputIt  first,
InputIt  last 
)
inline

◆ Array() [3/6]

donut::json::Array::Array ( size_type  count,
const Value value 
)
inline

◆ Array() [4/6]

donut::json::Array::Array ( std::initializer_list< value_type ilist)
inline

◆ Array() [5/6]

donut::json::Array::Array ( const Array other)
inlinedefault

◆ Array() [6/6]

donut::json::Array::Array ( Array &&  other)
inlinedefaultnoexcept

Member Function Documentation

◆ operator=() [1/3]

Array & donut::json::Array::operator= ( const Array other)
inlinedefault

◆ operator=() [2/3]

Array & donut::json::Array::operator= ( Array &&  other)
inlinedefaultnoexcept

◆ operator=() [3/3]

Array & donut::json::Array::operator= ( std::initializer_list< value_type ilist)
inline

◆ swap()

void donut::json::Array::swap ( Array other)
inlinenoexcept

◆ data() [1/2]

Array::pointer donut::json::Array::data ( )
inlinenoexcept

◆ data() [2/2]

Array::const_pointer donut::json::Array::data ( ) const
inlinenoexcept

◆ size()

Array::size_type donut::json::Array::size ( ) const
inlinenoexcept

◆ max_size()

Array::size_type donut::json::Array::max_size ( ) const
inlinenoexcept

◆ capacity()

Array::size_type donut::json::Array::capacity ( ) const
inlinenoexcept

◆ empty()

bool donut::json::Array::empty ( ) const
inlinenoexcept

◆ begin() [1/2]

Array::iterator donut::json::Array::begin ( )
inlinenoexcept

◆ begin() [2/2]

Array::const_iterator donut::json::Array::begin ( ) const
inlinenoexcept

◆ cbegin()

Array::const_iterator donut::json::Array::cbegin ( ) const
inlinenoexcept

◆ end() [1/2]

Array::iterator donut::json::Array::end ( )
inlinenoexcept

◆ end() [2/2]

Array::const_iterator donut::json::Array::end ( ) const
inlinenoexcept

◆ cend()

Array::const_iterator donut::json::Array::cend ( ) const
inlinenoexcept

◆ rbegin() [1/2]

Array::reverse_iterator donut::json::Array::rbegin ( )
inlinenoexcept

◆ rbegin() [2/2]

Array::const_reverse_iterator donut::json::Array::rbegin ( ) const
inlinenoexcept

◆ crbegin()

Array::const_reverse_iterator donut::json::Array::crbegin ( ) const
inlinenoexcept

◆ rend() [1/2]

Array::reverse_iterator donut::json::Array::rend ( )
inlinenoexcept

◆ rend() [2/2]

Array::const_reverse_iterator donut::json::Array::rend ( ) const
inlinenoexcept

◆ crend()

Array::const_reverse_iterator donut::json::Array::crend ( ) const
inlinenoexcept

◆ front() [1/2]

Array::reference donut::json::Array::front ( )
inline

◆ front() [2/2]

Array::const_reference donut::json::Array::front ( ) const
inline

◆ back() [1/2]

Array::reference donut::json::Array::back ( )
inline

◆ back() [2/2]

Array::const_reference donut::json::Array::back ( ) const
inline

◆ at() [1/2]

Array::reference donut::json::Array::at ( size_type  pos)
inline

◆ at() [2/2]

Array::const_reference donut::json::Array::at ( size_type  pos) const
inline

◆ operator[]() [1/2]

Array::reference donut::json::Array::operator[] ( size_type  pos)
inline

◆ operator[]() [2/2]

Array::const_reference donut::json::Array::operator[] ( size_type  pos) const
inline

◆ operator==()

bool donut::json::Array::operator== ( const Array other) const
inline

◆ operator<=>()

std::partial_ordering donut::json::Array::operator<=> ( const Array other) const
inlinenoexcept

◆ clear()

void donut::json::Array::clear ( )
inlinenoexcept

◆ reserve()

void donut::json::Array::reserve ( size_type  newCap)
inline

◆ shrink_to_fit()

void donut::json::Array::shrink_to_fit ( )
inline

◆ insert() [1/5]

Array::iterator donut::json::Array::insert ( const_iterator  pos,
const Value value 
)
inline

◆ insert() [2/5]

Array::iterator donut::json::Array::insert ( const_iterator  pos,
Value &&  value 
)
inline

◆ insert() [3/5]

Array::iterator donut::json::Array::insert ( const_iterator  pos,
size_type  count,
const Value value 
)
inline

◆ insert() [4/5]

template<typename InputIt >
Array::iterator donut::json::Array::insert ( const_iterator  pos,
InputIt  first,
InputIt  last 
)
inline

◆ insert() [5/5]

Array::iterator donut::json::Array::insert ( const_iterator  pos,
std::initializer_list< value_type ilist 
)
inline

◆ emplace()

template<typename... Args>
Array::iterator donut::json::Array::emplace ( const_iterator  pos,
Args &&...  args 
)
inline

◆ erase() [1/2]

Array::iterator donut::json::Array::erase ( const_iterator  pos)
inline

◆ erase() [2/2]

Array::iterator donut::json::Array::erase ( const_iterator  first,
const_iterator  last 
)
inline

◆ push_back() [1/2]

void donut::json::Array::push_back ( const Value value)
inline

◆ push_back() [2/2]

void donut::json::Array::push_back ( Value &&  value)
inline

◆ emplace_back()

template<typename... Args>
Array::reference donut::json::Array::emplace_back ( Args &&...  args)
inline

◆ pop_back()

void donut::json::Array::pop_back ( )
inline

◆ resize() [1/2]

void donut::json::Array::resize ( size_type  count)
inline

◆ resize() [2/2]

void donut::json::Array::resize ( size_type  count,
const Value value 
)
inline

Friends And Related Function Documentation

◆ swap

void swap ( Array a,
Array b 
)
friend

◆ erase

template<typename U >
size_type erase ( Array container,
const U &  value 
)
friend

◆ erase_if

template<typename Predicate >
size_type erase_if ( Array container,
Predicate  predicate 
)
friend

The documentation for this class was generated from the following file: