more documentation
This commit is contained in:
parent
d972483b33
commit
4bb5126502
9 changed files with 186 additions and 32 deletions
1
Makefile
1
Makefile
|
@ -50,6 +50,7 @@ update_doxygen_online:
|
||||||
rm -fr html
|
rm -fr html
|
||||||
mv /tmp/github-html html
|
mv /tmp/github-html html
|
||||||
-cd html ; git rm $(shell git ls-files --deleted)
|
-cd html ; git rm $(shell git ls-files --deleted)
|
||||||
|
git add html
|
||||||
git commit -m "Doxygen update"
|
git commit -m "Doxygen update"
|
||||||
git checkout master
|
git checkout master
|
||||||
|
|
||||||
|
|
17
docs/examples/basic_json__copyassignment.cpp
Normal file
17
docs/examples/basic_json__copyassignment.cpp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#include <json.hpp>
|
||||||
|
|
||||||
|
using namespace nlohmann;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// create JSON values
|
||||||
|
json a = 23;
|
||||||
|
json b = 42;
|
||||||
|
|
||||||
|
// copy-assign a to b
|
||||||
|
b = a;
|
||||||
|
|
||||||
|
// serialize the JSON arrays
|
||||||
|
std::cout << a << '\n';
|
||||||
|
std::cout << b << '\n';
|
||||||
|
}
|
2
docs/examples/basic_json__copyassignment.output
Normal file
2
docs/examples/basic_json__copyassignment.output
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
23
|
||||||
|
23
|
16
docs/examples/basic_json__moveconstructor.cpp
Normal file
16
docs/examples/basic_json__moveconstructor.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#include <json.hpp>
|
||||||
|
|
||||||
|
using namespace nlohmann;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// create a JSON value
|
||||||
|
json a = 23;
|
||||||
|
|
||||||
|
// move contents of a to b
|
||||||
|
json b(std::move(a));
|
||||||
|
|
||||||
|
// serialize the JSON arrays
|
||||||
|
std::cout << a << '\n';
|
||||||
|
std::cout << b << '\n';
|
||||||
|
}
|
2
docs/examples/basic_json__moveconstructor.output
Normal file
2
docs/examples/basic_json__moveconstructor.output
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
null
|
||||||
|
23
|
20
docs/examples/dump.cpp
Normal file
20
docs/examples/dump.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include <json.hpp>
|
||||||
|
|
||||||
|
using namespace nlohmann;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// create JSON values
|
||||||
|
json j_object = {{"one", 1}, {"two", 2}};
|
||||||
|
json j_array = {1, 2, 4, 8, 16};
|
||||||
|
|
||||||
|
// call dump()
|
||||||
|
std::cout << j_object.dump() << "\n\n";
|
||||||
|
std::cout << j_object.dump(-1) << "\n\n";
|
||||||
|
std::cout << j_object.dump(0) << "\n\n";
|
||||||
|
std::cout << j_object.dump(4) << "\n\n";
|
||||||
|
std::cout << j_array.dump() << "\n\n";
|
||||||
|
std::cout << j_array.dump(-1) << "\n\n";
|
||||||
|
std::cout << j_array.dump(0) << "\n\n";
|
||||||
|
std::cout << j_array.dump(4) << "\n\n";
|
||||||
|
}
|
34
docs/examples/dump.output
Normal file
34
docs/examples/dump.output
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{"one":1,"two":2}
|
||||||
|
|
||||||
|
{"one":1,"two":2}
|
||||||
|
|
||||||
|
{
|
||||||
|
"one": 1,
|
||||||
|
"two": 2
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"one": 1,
|
||||||
|
"two": 2
|
||||||
|
}
|
||||||
|
|
||||||
|
[1,2,4,8,16]
|
||||||
|
|
||||||
|
[1,2,4,8,16]
|
||||||
|
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
16
|
||||||
|
]
|
||||||
|
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
16
|
||||||
|
]
|
||||||
|
|
63
src/json.hpp
63
src/json.hpp
|
@ -85,16 +85,16 @@ struct has_mapped_type
|
||||||
(@c std::allocator by default)
|
(@c std::allocator by default)
|
||||||
|
|
||||||
@requirement This class satisfies the Container requirements (see http://en.cppreference.com/w/cpp/concept/Container):
|
@requirement This class satisfies the Container requirements (see http://en.cppreference.com/w/cpp/concept/Container):
|
||||||
- @ref basic_json()
|
- basic_json()
|
||||||
- @ref basic_json(const basic_json&)
|
- basic_json(const basic_json&)
|
||||||
- @ref reference& operator=(basic_json)
|
- reference& operator=(basic_json)
|
||||||
- @ref ~basic_json()
|
- ~basic_json()
|
||||||
- @ref iterator begin(), @ref const_iterator begin(), @ref const_iterator cbegin()
|
- iterator begin(), const_iterator begin(), const_iterator cbegin()
|
||||||
- @ref iterator end(), @ref const_iterator end(), @ref const_iterator cend()
|
- iterator end(), const_iterator end(), const_iterator cend()
|
||||||
- @ref bool operator==(const_reference, const_reference), @ref bool operator!=(const_reference, const_reference)
|
- bool operator==(const_reference, const_reference), bool operator!=(const_reference, const_reference)
|
||||||
- @ref void swap(reference other)
|
- void swap(reference other)
|
||||||
- @ref size_type size(), @ref size_type max_size()
|
- size_type size(), size_type max_size()
|
||||||
- @ref bool empty()
|
- bool empty()
|
||||||
|
|
||||||
@note ObjectType trick from http://stackoverflow.com/a/9860911
|
@note ObjectType trick from http://stackoverflow.com/a/9860911
|
||||||
|
|
||||||
|
@ -686,7 +686,8 @@ class basic_json
|
||||||
3. In all other cases, the initializer list could not be interpreted as
|
3. In all other cases, the initializer list could not be interpreted as
|
||||||
JSON object type, so interpreting it as JSON array type is safe.
|
JSON object type, so interpreting it as JSON array type is safe.
|
||||||
|
|
||||||
With the rules described above, the following JSON values cannot be expressed by an initializer list:
|
With the rules described above, the following JSON values cannot be
|
||||||
|
expressed by an initializer list:
|
||||||
|
|
||||||
- the empty array (`[]`): use @ref array(list_init_t) with an empty
|
- the empty array (`[]`): use @ref array(list_init_t) with an empty
|
||||||
initializer list in this case
|
initializer list in this case
|
||||||
|
@ -1037,7 +1038,22 @@ class basic_json
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// move constructor
|
/*!
|
||||||
|
@brief move constructor
|
||||||
|
|
||||||
|
Move constructor. Constructs a JSON value with the contents of the given
|
||||||
|
value @a other using move semantics. It "steals" the resources from @a
|
||||||
|
other and leaves it as JSON null value.
|
||||||
|
|
||||||
|
@param other value to move to this object
|
||||||
|
|
||||||
|
@post @a other is a JSON null value
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
|
@liveexample{The code below shows the move constructor explicitly called
|
||||||
|
via std::move.,basic_json__moveconstructor}
|
||||||
|
*/
|
||||||
basic_json(basic_json&& other) noexcept
|
basic_json(basic_json&& other) noexcept
|
||||||
: m_type(std::move(other.m_type)),
|
: m_type(std::move(other.m_type)),
|
||||||
m_value(std::move(other.m_value))
|
m_value(std::move(other.m_value))
|
||||||
|
@ -1050,14 +1066,22 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief copy assignment
|
@brief copy assignment
|
||||||
|
|
||||||
The copy assignment operator is expressed in terms of the copy constructor,
|
Copy assignment operator. Copies a JSON value via the "copy and swap"
|
||||||
destructor, and the swap() member function.
|
strategy: It is expressed in terms of the copy constructor, destructor, and
|
||||||
|
the swap() member function.
|
||||||
|
|
||||||
|
@param other value to copy from
|
||||||
|
|
||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function satisfies the Container requirements:
|
@requirement This function satisfies the Container requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
|
|
||||||
|
@liveexample{The code below shows and example for the copy assignment. It
|
||||||
|
creates a copy of value `a` which is then swapped with `b`. Finally\, the
|
||||||
|
copy of `a` (which is the null value after the swap) is
|
||||||
|
destroyed.,basic_json__copyassignment}
|
||||||
|
|
||||||
@ingroup container
|
@ingroup container
|
||||||
*/
|
*/
|
||||||
reference& operator=(basic_json other) noexcept (
|
reference& operator=(basic_json other) noexcept (
|
||||||
|
@ -1076,7 +1100,7 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief destructor
|
@brief destructor
|
||||||
|
|
||||||
Destroys the JSON value and frees all memory.
|
Destroys the JSON value and frees all allocated memory.
|
||||||
|
|
||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
|
@ -1137,7 +1161,7 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief serialization
|
@brief serialization
|
||||||
|
|
||||||
Serialization function for JSON objects. The function tries to mimick
|
Serialization function for JSON values. The function tries to mimick
|
||||||
Python's @p json.dumps() function, and currently supports its @p indent
|
Python's @p json.dumps() function, and currently supports its @p indent
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
|
@ -1146,6 +1170,13 @@ class basic_json
|
||||||
will only insert newlines. -1 (the default) selects the most compact
|
will only insert newlines. -1 (the default) selects the most compact
|
||||||
representation
|
representation
|
||||||
|
|
||||||
|
@return string containing the serialization of the JSON value
|
||||||
|
|
||||||
|
@complexity Linear.
|
||||||
|
|
||||||
|
@liveexample{The following example shows the effect of different @a indent
|
||||||
|
parameters to the result of the serializaion.,dump}
|
||||||
|
|
||||||
@see https://docs.python.org/2/library/json.html#json.dump
|
@see https://docs.python.org/2/library/json.html#json.dump
|
||||||
*/
|
*/
|
||||||
string_t dump(const int indent = -1) const noexcept
|
string_t dump(const int indent = -1) const noexcept
|
||||||
|
|
|
@ -85,16 +85,16 @@ struct has_mapped_type
|
||||||
(@c std::allocator by default)
|
(@c std::allocator by default)
|
||||||
|
|
||||||
@requirement This class satisfies the Container requirements (see http://en.cppreference.com/w/cpp/concept/Container):
|
@requirement This class satisfies the Container requirements (see http://en.cppreference.com/w/cpp/concept/Container):
|
||||||
- @ref basic_json()
|
- basic_json()
|
||||||
- @ref basic_json(const basic_json&)
|
- basic_json(const basic_json&)
|
||||||
- @ref reference& operator=(basic_json)
|
- reference& operator=(basic_json)
|
||||||
- @ref ~basic_json()
|
- ~basic_json()
|
||||||
- @ref iterator begin(), @ref const_iterator begin(), @ref const_iterator cbegin()
|
- iterator begin(), const_iterator begin(), const_iterator cbegin()
|
||||||
- @ref iterator end(), @ref const_iterator end(), @ref const_iterator cend()
|
- iterator end(), const_iterator end(), const_iterator cend()
|
||||||
- @ref bool operator==(const_reference, const_reference), @ref bool operator!=(const_reference, const_reference)
|
- bool operator==(const_reference, const_reference), bool operator!=(const_reference, const_reference)
|
||||||
- @ref void swap(reference other)
|
- void swap(reference other)
|
||||||
- @ref size_type size(), @ref size_type max_size()
|
- size_type size(), size_type max_size()
|
||||||
- @ref bool empty()
|
- bool empty()
|
||||||
|
|
||||||
@note ObjectType trick from http://stackoverflow.com/a/9860911
|
@note ObjectType trick from http://stackoverflow.com/a/9860911
|
||||||
|
|
||||||
|
@ -686,7 +686,8 @@ class basic_json
|
||||||
3. In all other cases, the initializer list could not be interpreted as
|
3. In all other cases, the initializer list could not be interpreted as
|
||||||
JSON object type, so interpreting it as JSON array type is safe.
|
JSON object type, so interpreting it as JSON array type is safe.
|
||||||
|
|
||||||
With the rules described above, the following JSON values cannot be expressed by an initializer list:
|
With the rules described above, the following JSON values cannot be
|
||||||
|
expressed by an initializer list:
|
||||||
|
|
||||||
- the empty array (`[]`): use @ref array(list_init_t) with an empty
|
- the empty array (`[]`): use @ref array(list_init_t) with an empty
|
||||||
initializer list in this case
|
initializer list in this case
|
||||||
|
@ -1037,7 +1038,22 @@ class basic_json
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// move constructor
|
/*!
|
||||||
|
@brief move constructor
|
||||||
|
|
||||||
|
Move constructor. Constructs a JSON value with the contents of the given
|
||||||
|
value @a other using move semantics. It "steals" the resources from @a
|
||||||
|
other and leaves it as JSON null value.
|
||||||
|
|
||||||
|
@param other value to move to this object
|
||||||
|
|
||||||
|
@post @a other is a JSON null value
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
|
@liveexample{The code below shows the move constructor explicitly called
|
||||||
|
via std::move.,basic_json__moveconstructor}
|
||||||
|
*/
|
||||||
basic_json(basic_json&& other) noexcept
|
basic_json(basic_json&& other) noexcept
|
||||||
: m_type(std::move(other.m_type)),
|
: m_type(std::move(other.m_type)),
|
||||||
m_value(std::move(other.m_value))
|
m_value(std::move(other.m_value))
|
||||||
|
@ -1050,14 +1066,22 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief copy assignment
|
@brief copy assignment
|
||||||
|
|
||||||
The copy assignment operator is expressed in terms of the copy constructor,
|
Copy assignment operator. Copies a JSON value via the "copy and swap"
|
||||||
destructor, and the swap() member function.
|
strategy: It is expressed in terms of the copy constructor, destructor, and
|
||||||
|
the swap() member function.
|
||||||
|
|
||||||
|
@param other value to copy from
|
||||||
|
|
||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function satisfies the Container requirements:
|
@requirement This function satisfies the Container requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
|
|
||||||
|
@liveexample{The code below shows and example for the copy assignment. It
|
||||||
|
creates a copy of value `a` which is then swapped with `b`. Finally\, the
|
||||||
|
copy of `a` (which is the null value after the swap) is
|
||||||
|
destroyed.,basic_json__copyassignment}
|
||||||
|
|
||||||
@ingroup container
|
@ingroup container
|
||||||
*/
|
*/
|
||||||
reference& operator=(basic_json other) noexcept (
|
reference& operator=(basic_json other) noexcept (
|
||||||
|
@ -1076,7 +1100,7 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief destructor
|
@brief destructor
|
||||||
|
|
||||||
Destroys the JSON value and frees all memory.
|
Destroys the JSON value and frees all allocated memory.
|
||||||
|
|
||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
|
@ -1137,7 +1161,7 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief serialization
|
@brief serialization
|
||||||
|
|
||||||
Serialization function for JSON objects. The function tries to mimick
|
Serialization function for JSON values. The function tries to mimick
|
||||||
Python's @p json.dumps() function, and currently supports its @p indent
|
Python's @p json.dumps() function, and currently supports its @p indent
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
|
@ -1146,6 +1170,13 @@ class basic_json
|
||||||
will only insert newlines. -1 (the default) selects the most compact
|
will only insert newlines. -1 (the default) selects the most compact
|
||||||
representation
|
representation
|
||||||
|
|
||||||
|
@return string containing the serialization of the JSON value
|
||||||
|
|
||||||
|
@complexity Linear.
|
||||||
|
|
||||||
|
@liveexample{The following example shows the effect of different @a indent
|
||||||
|
parameters to the result of the serializaion.,dump}
|
||||||
|
|
||||||
@see https://docs.python.org/2/library/json.html#json.dump
|
@see https://docs.python.org/2/library/json.html#json.dump
|
||||||
*/
|
*/
|
||||||
string_t dump(const int indent = -1) const noexcept
|
string_t dump(const int indent = -1) const noexcept
|
||||||
|
|
Loading…
Reference in a new issue