|
JSON Voorhees
Killer JSON for C++
|
Copyright (c) 2012-2018 by Travis Gockel. More...
#include <jsonv/config.hpp>#include <jsonv/string_view.hpp>#include <jsonv/detail/basic_view.hpp>#include <cstddef>#include <cstdint>#include <initializer_list>#include <iosfwd>#include <iterator>#include <functional>#include <map>#include <stdexcept>#include <string>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| union | jsonv::detail::value_storage |
| class | jsonv::kind_error |
Thrown from various value methods when attempting to perform an operation which is not valid for the kind of value. More... | |
| class | jsonv::value |
Represents a single JSON value, which can be any one of a potential kind, each behaving slightly differently. More... | |
| struct | jsonv::value::basic_array_iterator< T, TArrayView > |
| The base type for iterating over array values. More... | |
| struct | jsonv::value::basic_object_iterator< T, TIterator > |
| The base iterator type for iterating over object types. More... | |
| struct | jsonv::value::object_insert_return_type |
Type returned from insert operations when this has kind::object. More... | |
| class | jsonv::object_node_handle |
| A node handle used when a value is kind::object to access elements of the object in potentially destructive manner. More... | |
| struct | std::hash< jsonv::value > |
Explicit specialization of std::hash for jsonv::value types so you can store a value in an unordered container. More... | |
Macros | |
| #define | JSONV_VALUE_INTEGER_ALTERNATIVE_CTOR_PROTO_GENERATOR(type_) value(type_ val); |
Enumerations | |
| enum | jsonv::kind : unsigned char { null, object, array, string, integer, decimal, boolean } |
Describes the kind of data a value holds. More... | |
Functions | |
| JSONV_PUBLIC std::ostream & | jsonv::operator<< (std::ostream &, const kind &) |
Print out the name of the kind. More... | |
| JSONV_PUBLIC std::string | jsonv::to_string (const kind &) |
Get the name of the kind. More... | |
| JSONV_PUBLIC std::string | jsonv::to_string (const value &) |
Get a string representation of the given value. More... | |
| JSONV_PUBLIC value | jsonv::operator""_json (const char *str, std::size_t len) |
| A user-defined literal for parsing JSON. More... | |
| JSONV_PUBLIC void | jsonv::swap (value &a, value &b) noexcept |
| Swap the values a and b. More... | |
| JSONV_PUBLIC value | jsonv::array () |
| Create an empty array value. More... | |
| JSONV_PUBLIC value | jsonv::array (std::initializer_list< value > source) |
| Create an array value from the given source. More... | |
| template<typename TForwardIterator > | |
| value | jsonv::array (TForwardIterator first, TForwardIterator last) |
| Create an array with contents defined by range [first, last). More... | |
| JSONV_PUBLIC value | jsonv::object () |
| Create an empty object. More... | |
| JSONV_PUBLIC value | jsonv::object (std::initializer_list< std::pair< std::string, value >> source) |
| Create an object with key-value pairs from the given source. More... | |
| JSONV_PUBLIC value | jsonv::object (std::initializer_list< std::pair< std::wstring, value >> source) |
| template<typename TForwardIterator > | |
| value | jsonv::object (TForwardIterator first, TForwardIterator last) |
| Create an object whose contents are defined by range [first, last). More... | |
Variables | |
| JSONV_PUBLIC const value | jsonv::null |
An instance with kind::null. More... | |
Copyright (c) 2012-2018 by Travis Gockel.
All rights reserved.
This program is free software: you can redistribute it and/or modify it under the terms of the Apache License as published by the Apache Software Foundation, either version 2 of the License, or (at your option) any later version.
Definition in file value.hpp.
| struct jsonv::value::object_insert_return_type |
Type returned from insert operations when this has kind::object.
It is generally compatible with the insert_return_type of std::map, with the notable lack of node.
| Class Members | ||
|---|---|---|
| bool | inserted |
Did the insert operation perform an insert? A value of false indicates there was a key already present with the same name. |
| const_object_iterator | position | The position of the inserted node or node with the duplicate key. |