neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc > Class Template Reference

#include <json.hpp>

Classes

struct  bad_conversion
 
class  const_iterator
 
class  iterator
 
struct  no_name
 

Public Types

typedef Alloc allocator_type
 
typedef CharT character_type
 
typedef Traits character_traits_type
 
typedef CharAlloc character_allocator_type
 
typedef self_type node_value_type
 
typedef std::allocator_traits< allocator_type >::template rebind_alloc< self_typevalue_allocator
 
typedef const self_typeconst_pointer
 
typedef self_typepointer
 
typedef const self_typeconst_reference
 
typedef self_typereference
 
typedef basic_quick_string< character_type, character_traits_type, character_allocator_typejson_string
 
typedef basic_json_object< self_typejson_object
 
typedef basic_json_array< self_typejson_array
 
typedef double json_double
 
typedef int64_t json_int64
 
typedef uint64_t json_uint64
 
typedef int32_t json_int
 
typedef uint32_t json_uint
 
typedef bool json_bool
 
typedef basic_json_null< self_typejson_null
 
typedef basic_json_keyword< self_typejson_keyword
 
typedef std::variant< std::monostate, json_string, json_keywordname_t
 
typedef std::optional< json_stringoptional_json_string
 
typedef std::variant< std::monostate, json_object, json_array, json_double, json_int64, json_uint64, json_int, json_uint, json_string, json_bool, json_null, json_keywordvalue_type
 

Public Member Functions

 basic_json_value ()
 
 basic_json_value (reference aParent, const value_type &aValue)
 
 basic_json_value (reference aParent, value_type &&aValue)
 
 basic_json_value (const basic_json_value &)=delete
 
 basic_json_value (basic_json_value &&)=delete
 
template<typename T >
std::enable_if_t<!std::is_arithmetic_v< T >, const T & > as () const
 
template<typename T >
std::enable_if_t<!std::is_arithmetic_v< T >, T & > as ()
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Tas () const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, T & > as ()
 
const value_typeoperator* () const
 
value_typeoperator* ()
 
reference operator= (const value_type &aValue)
 
reference operator= (value_type &&aValue)
 
json_type type () const
 
bool is_composite () const
 
bool is_empty_composite () const
 
bool is_populated_composite () const
 
const json_stringtext () const
 
bool has_name () const
 
bool name_is_keyword () const
 
const json_stringname () const
 
void set_name (const json_string &aName)
 
void set_name (const json_keyword &aName)
 
bool is_root () const
 
bool has_parent () const
 
const_reference parent () const
 
reference parent ()
 
bool has_children () const
 
const_pointer first_child () const
 
pointer first_child ()
 
const_pointer last_child () const
 
pointer last_child ()
 
bool is_last_sibling () const
 
const_pointer next_sibling () const
 
pointer next_sibling ()
 
const_pointer next_parent_sibling () const
 
pointer next_parent_sibling ()
 
const_iterator cbegin () const
 
const_iterator cend () const
 
const_iterator begin () const
 
const_iterator end () const
 
iterator begin ()
 
iterator end ()
 
template<typename Visitor >
void visit (Visitor &&aVisitor, bool aRecurse=true) const
 
template<typename Visitor >
void visit (Visitor &&aVisitor, bool aRecurse=true)
 
bool empty () const
 
std::size_t size () const
 
void clear ()
 
template<typename... Args>
reference emplace_back (Args &&... aArguments)
 
template<typename T >
void push_back (T &&aValue)
 
void pop_back ()
 
const json_document_source_locationdocument_source_location () const
 
void set_document_source_location (const json_document_source_location &aDocumentSourceLocation)
 

Static Public Attributes

static constexpr json_syntax syntax = Syntax
 

Friends

class basic_json< Syntax, Alloc, CharT, Traits, CharAlloc >
 
template<typename T >
class json_detail::basic_json_node
 

Detailed Description

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
class neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >

Definition at line 541 of file json.hpp.

Member Typedef Documentation

◆ allocator_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef Alloc neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::allocator_type

Definition at line 552 of file json.hpp.

◆ character_allocator_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef CharAlloc neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::character_allocator_type

Definition at line 555 of file json.hpp.

◆ character_traits_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef Traits neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::character_traits_type

Definition at line 554 of file json.hpp.

◆ character_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef CharT neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::character_type

Definition at line 553 of file json.hpp.

◆ const_pointer

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef const self_type* neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::const_pointer

Definition at line 561 of file json.hpp.

◆ const_reference

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef const self_type& neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::const_reference

Definition at line 563 of file json.hpp.

◆ json_array

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef basic_json_array<self_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_array

Definition at line 574 of file json.hpp.

◆ json_bool

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_bool

Definition at line 580 of file json.hpp.

◆ json_double

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef double neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_double

Definition at line 575 of file json.hpp.

◆ json_int

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef int32_t neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_int

Definition at line 578 of file json.hpp.

◆ json_int64

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef int64_t neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_int64

Definition at line 576 of file json.hpp.

◆ json_keyword

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef basic_json_keyword<self_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_keyword

Definition at line 582 of file json.hpp.

◆ json_null

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef basic_json_null<self_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_null

Definition at line 581 of file json.hpp.

◆ json_object

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef basic_json_object<self_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_object

Definition at line 573 of file json.hpp.

◆ json_string

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef basic_quick_string<character_type, character_traits_type, character_allocator_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_string

Definition at line 572 of file json.hpp.

◆ json_uint

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef uint32_t neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_uint

Definition at line 579 of file json.hpp.

◆ json_uint64

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef uint64_t neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::json_uint64

Definition at line 577 of file json.hpp.

◆ name_t

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef std::variant<std::monostate, json_string, json_keyword> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::name_t

Definition at line 584 of file json.hpp.

◆ node_value_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef self_type neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::node_value_type

Definition at line 557 of file json.hpp.

◆ optional_json_string

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef std::optional<json_string> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::optional_json_string

Definition at line 586 of file json.hpp.

◆ pointer

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef self_type* neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::pointer

Definition at line 562 of file json.hpp.

◆ reference

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef self_type& neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::reference

Definition at line 564 of file json.hpp.

◆ value_allocator

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef std::allocator_traits<allocator_type>::template rebind_alloc<self_type> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::value_allocator

Definition at line 559 of file json.hpp.

◆ value_type

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
typedef std::variant<std::monostate, json_object, json_array, json_double, json_int64, json_uint64, json_int, json_uint, json_string, json_bool, json_null, json_keyword> neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::value_type

Definition at line 588 of file json.hpp.

Constructor & Destructor Documentation

◆ basic_json_value() [1/5]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::basic_json_value ( )
inline

Definition at line 592 of file json.hpp.

◆ basic_json_value() [2/5]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::basic_json_value ( reference  aParent,
const value_type aValue 
)
inline

Definition at line 596 of file json.hpp.

◆ basic_json_value() [3/5]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::basic_json_value ( reference  aParent,
value_type &&  aValue 
)
inline

Definition at line 601 of file json.hpp.

◆ basic_json_value() [4/5]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::basic_json_value ( const basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc > &  )
delete

◆ basic_json_value() [5/5]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::basic_json_value ( basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc > &&  )
delete

Member Function Documentation

◆ as() [1/4]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
std::enable_if_t<!std::is_arithmetic_v< T >, T & > neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::as ( )
inline

Definition at line 616 of file json.hpp.

◆ as() [2/4]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, T & > neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::as ( )
inline

Definition at line 636 of file json.hpp.

◆ as() [3/4]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
std::enable_if_t<!std::is_arithmetic_v< T >, const T & > neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::as ( ) const
inline

Definition at line 611 of file json.hpp.

◆ as() [4/4]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, T > neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::as ( ) const
inline

Definition at line 621 of file json.hpp.

◆ begin() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::begin ( )
inline

Definition at line 783 of file json.hpp.

◆ begin() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::begin ( ) const
inline

Definition at line 775 of file json.hpp.

◆ cbegin()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::cbegin ( ) const
inline

Definition at line 767 of file json.hpp.

◆ cend()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::cend ( ) const
inline

Definition at line 771 of file json.hpp.

◆ clear()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::clear ( )
inline

Definition at line 839 of file json.hpp.

◆ document_source_location()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const json_document_source_location & neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::document_source_location ( ) const
inline

Definition at line 868 of file json.hpp.

◆ emplace_back()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename... Args>
reference neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::emplace_back ( Args &&...  aArguments)
inline

Definition at line 854 of file json.hpp.

◆ empty()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::empty ( ) const
inline

Definition at line 831 of file json.hpp.

◆ end() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::end ( )
inline

Definition at line 787 of file json.hpp.

◆ end() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_iterator neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::end ( ) const
inline

Definition at line 779 of file json.hpp.

◆ first_child() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::first_child ( )
inline

Definition at line 734 of file json.hpp.

◆ first_child() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::first_child ( ) const
inline

Definition at line 730 of file json.hpp.

◆ has_children()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::has_children ( ) const
inline

Definition at line 726 of file json.hpp.

◆ has_name()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::has_name ( ) const
inline

Definition at line 686 of file json.hpp.

◆ has_parent()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::has_parent ( ) const
inline

Definition at line 714 of file json.hpp.

◆ is_composite()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::is_composite ( ) const
inline

Definition at line 667 of file json.hpp.

◆ is_empty_composite()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::is_empty_composite ( ) const
inline

Definition at line 671 of file json.hpp.

◆ is_last_sibling()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::is_last_sibling ( ) const
inline

Definition at line 746 of file json.hpp.

◆ is_populated_composite()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::is_populated_composite ( ) const
inline

Definition at line 675 of file json.hpp.

◆ is_root()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::is_root ( ) const
inline

Definition at line 710 of file json.hpp.

◆ last_child() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::last_child ( )
inline

Definition at line 742 of file json.hpp.

◆ last_child() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::last_child ( ) const
inline

Definition at line 738 of file json.hpp.

◆ name()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const json_string & neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::name ( ) const
inline

Definition at line 694 of file json.hpp.

◆ name_is_keyword()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
bool neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::name_is_keyword ( ) const
inline

Definition at line 690 of file json.hpp.

◆ next_parent_sibling() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::next_parent_sibling ( )
inline

Definition at line 762 of file json.hpp.

◆ next_parent_sibling() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::next_parent_sibling ( ) const
inline

Definition at line 758 of file json.hpp.

◆ next_sibling() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::next_sibling ( )
inline

Definition at line 754 of file json.hpp.

◆ next_sibling() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_pointer neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::next_sibling ( ) const
inline

Definition at line 750 of file json.hpp.

◆ operator*() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
value_type & neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::operator* ( )
inline

Definition at line 644 of file json.hpp.

◆ operator*() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const value_type & neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::operator* ( ) const
inline

Definition at line 640 of file json.hpp.

◆ operator=() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
reference neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::operator= ( const value_type aValue)
inline

Definition at line 648 of file json.hpp.

◆ operator=() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
reference neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::operator= ( value_type &&  aValue)
inline

Definition at line 655 of file json.hpp.

◆ parent() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
reference neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::parent ( )
inline

Definition at line 722 of file json.hpp.

◆ parent() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const_reference neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::parent ( ) const
inline

Definition at line 718 of file json.hpp.

◆ pop_back()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::pop_back ( )
inline

Definition at line 863 of file json.hpp.

◆ push_back()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::push_back ( T &&  aValue)
inline

Definition at line 859 of file json.hpp.

◆ set_document_source_location()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::set_document_source_location ( const json_document_source_location aDocumentSourceLocation)
inline

Definition at line 872 of file json.hpp.

◆ set_name() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::set_name ( const json_keyword aName)
inline

Definition at line 705 of file json.hpp.

◆ set_name() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::set_name ( const json_string aName)
inline

Definition at line 701 of file json.hpp.

◆ size()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
std::size_t neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::size ( ) const
inline

Definition at line 835 of file json.hpp.

◆ text()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
const json_string & neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::text ( ) const
inline

Definition at line 679 of file json.hpp.

◆ type()

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
json_type neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::type ( ) const
inline

Definition at line 663 of file json.hpp.

◆ visit() [1/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename Visitor >
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::visit ( Visitor &&  aVisitor,
bool  aRecurse = true 
)
inline

Definition at line 811 of file json.hpp.

◆ visit() [2/2]

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename Visitor >
void neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::visit ( Visitor &&  aVisitor,
bool  aRecurse = true 
) const
inline

Definition at line 793 of file json.hpp.

Friends And Related Symbol Documentation

◆ basic_json< Syntax, Alloc, CharT, Traits, CharAlloc >

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
friend class basic_json< Syntax, Alloc, CharT, Traits, CharAlloc >
friend

Definition at line 543 of file json.hpp.

◆ json_detail::basic_json_node

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
template<typename T >
friend class json_detail::basic_json_node
friend

Definition at line 546 of file json.hpp.

Member Data Documentation

◆ syntax

template<json_syntax Syntax = json_syntax::Standard, typename Alloc = std::allocator<json_type>, typename CharT = char, typename Traits = std::char_traits<CharT>, typename CharAlloc = std::allocator<CharT>>
constexpr json_syntax neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::syntax = Syntax
staticconstexpr

Definition at line 551 of file json.hpp.


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