Commit fdfb39d9 authored by Niels's avatar Niels

improved documentation

parent 3b776c08
...@@ -54,6 +54,7 @@ doxygen: create_output create_links ...@@ -54,6 +54,7 @@ doxygen: create_output create_links
gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html
gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html
gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html
gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html
upload: clean doxygen check_output upload: clean doxygen check_output
cd html ; ../scripts/git-update-ghpages nlohmann/json cd html ; ../scripts/git-update-ghpages nlohmann/json
......
...@@ -15,4 +15,12 @@ pre.fragment { ...@@ -15,4 +15,12 @@ pre.fragment {
td.paramname { td.paramname {
vertical-align: top; vertical-align: top;
} }
\ No newline at end of file
.ok_green {
background-color: #89C35C;
}
.nok_throws {
background-color: #ffa500;
}
...@@ -13,3 +13,15 @@ ...@@ -13,3 +13,15 @@
#top, .footer { #top, .footer {
display: none; display: none;
} }
td.paramname {
vertical-align: top;
}
.ok_green {
background-color: #89C35C;
}
.nok_throws {
background-color: #ffa500;
}
This diff is collapsed.
...@@ -3229,7 +3229,7 @@ class basic_json ...@@ -3229,7 +3229,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3319,7 +3319,7 @@ class basic_json ...@@ -3319,7 +3319,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3387,7 +3387,7 @@ class basic_json ...@@ -3387,7 +3387,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3589,8 +3589,12 @@ class basic_json ...@@ -3589,8 +3589,12 @@ class basic_json
@brief access the last element @brief access the last element
Returns a reference to the last element in the container. For a JSON Returns a reference to the last element in the container. For a JSON
container `c`, the expression `c.back()` is equivalent to `{ auto tmp = container `c`, the expression `c.back()` is equivalent to
c.end(); --tmp; return *tmp; }`. @code {.cpp}
auto tmp = c.end();
--tmp;
return *tmp;
@endcode
@return In case of a structured type (array or object), a reference to the @return In case of a structured type (array or object), a reference to the
last element is returned. In cast of number, string, or boolean values, a last element is returned. In cast of number, string, or boolean values, a
...@@ -3602,7 +3606,7 @@ class basic_json ...@@ -3602,7 +3606,7 @@ class basic_json
an empty array or object (undefined behavior, guarded by assertions). an empty array or object (undefined behavior, guarded by assertions).
@post The JSON value remains unchanged. @post The JSON value remains unchanged.
@throw std::out_of_range when called on null value. @throw std::out_of_range when called on `null` value.
@liveexample{The following code shows an example for `back()`.,back} @liveexample{The following code shows an example for `back()`.,back}
...@@ -3630,28 +3634,29 @@ class basic_json ...@@ -3630,28 +3634,29 @@ class basic_json
/*! /*!
@brief remove element given an iterator @brief remove element given an iterator
Removes the element specified by iterator @a pos. Invalidates iterators and Removes the element specified by iterator @a pos. The iterator @a pos must
references at or after the point of the erase, including the end() be valid and dereferenceable. Thus the `end()` iterator (which is valid,
iterator. The iterator @a pos must be valid and dereferenceable. Thus the but is not dereferenceable) cannot be used as a value for @a pos.
end() iterator (which is valid, but is not dereferenceable) cannot be used
as a value for @a pos.
If called on a primitive type other than null, the resulting JSON value If called on a primitive type other than `null`, the resulting JSON value
will be `null`. will be `null`.
@param[in] pos iterator to the element to remove @param[in] pos iterator to the element to remove
@return Iterator following the last removed element. If the iterator @a pos @return Iterator following the last removed element. If the iterator @a pos
refers to the last element, the end() iterator is returned. refers to the last element, the `end()` iterator is returned.
@tparam InteratorType an @ref iterator or @ref const_iterator @tparam InteratorType an @ref iterator or @ref const_iterator
@post Invalidates iterators and references at or after the point of the
erase, including the `end()` iterator.
@throw std::domain_error if called on a `null` value; example: `"cannot use @throw std::domain_error if called on a `null` value; example: `"cannot use
erase() with null"` erase() with null"`
@throw std::domain_error if called on an iterator which does not belong to @throw std::domain_error if called on an iterator which does not belong to
the current JSON value; example: `"iterator does not fit current value"` the current JSON value; example: `"iterator does not fit current value"`
@throw std::out_of_range if called on a primitive type with invalid @throw std::out_of_range if called on a primitive type with invalid
iterator (i.e., any iterator which is not end()); example: `"iterator out iterator (i.e., any iterator which is not `begin()`); example: `"iterator
of range"` out of range"`
@complexity The complexity depends on the type: @complexity The complexity depends on the type:
- objects: amortized constant - objects: amortized constant
...@@ -3736,21 +3741,23 @@ class basic_json ...@@ -3736,21 +3741,23 @@ class basic_json
/*! /*!
@brief remove elements given an iterator range @brief remove elements given an iterator range
Removes the element specified by the range `[first; last)`. Invalidates Removes the element specified by the range `[first; last)`. The iterator @a
iterators and references at or after the point of the erase, including the first does not need to be dereferenceable if `first == last`: erasing an
end() iterator. The iterator @a first does not need to be dereferenceable empty range is a no-op.
if `first == last`: erasing an empty range is a no-op.
If called on a primitive type other than null, the resulting JSON value If called on a primitive type other than `null`, the resulting JSON value
will be `null`. will be `null`.
@param[in] first iterator to the beginning of the range to remove @param[in] first iterator to the beginning of the range to remove
@param[in] last iterator past the end of the range to remove @param[in] last iterator past the end of the range to remove
@return Iterator following the last removed element. If the iterator @a @return Iterator following the last removed element. If the iterator @a
second refers to the last element, the end() iterator is returned. second refers to the last element, the `end()` iterator is returned.
@tparam InteratorType an @ref iterator or @ref const_iterator @tparam InteratorType an @ref iterator or @ref const_iterator
@post Invalidates iterators and references at or after the point of the
erase, including the `end()` iterator.
@throw std::domain_error if called on a `null` value; example: `"cannot use @throw std::domain_error if called on a `null` value; example: `"cannot use
erase() with null"` erase() with null"`
@throw std::domain_error if called on iterators which does not belong to @throw std::domain_error if called on iterators which does not belong to
...@@ -3848,9 +3855,12 @@ class basic_json ...@@ -3848,9 +3855,12 @@ class basic_json
@param[in] key value of the elements to remove @param[in] key value of the elements to remove
@return Number of elements removed. If ObjectType is the default `std::map` @return Number of elements removed. If @a ObjectType is the default
type, the return value will always be `0` (@a key was not found) or `1` (@a `std::map` type, the return value will always be `0` (@a key was not found)
key was found). or `1` (@a key was found).
@post References and iterators to the erased elements are invalidated.
Other references and iterators are not affected.
@throw std::domain_error when called on a type other than JSON object; @throw std::domain_error when called on a type other than JSON object;
example: `"cannot use erase() with null"` example: `"cannot use erase() with null"`
...@@ -3924,6 +3934,16 @@ class basic_json ...@@ -3924,6 +3934,16 @@ class basic_json
} }
} }
/// @}
////////////
// lookup //
////////////
/// @name lookup
/// @{
/*! /*!
@brief find an element in a JSON object @brief find an element in a JSON object
......
...@@ -3229,7 +3229,7 @@ class basic_json ...@@ -3229,7 +3229,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3319,7 +3319,7 @@ class basic_json ...@@ -3319,7 +3319,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3387,7 +3387,7 @@ class basic_json ...@@ -3387,7 +3387,7 @@ class basic_json
@return reference to the element at key @a key @return reference to the element at key @a key
@throw std::domain_error if JSON is not an object or null; example: @throw std::domain_error if JSON is not an object or null; example:
`"cannot use operator[] with null"` `"cannot use operator[] with string"`
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.
...@@ -3589,8 +3589,12 @@ class basic_json ...@@ -3589,8 +3589,12 @@ class basic_json
@brief access the last element @brief access the last element
Returns a reference to the last element in the container. For a JSON Returns a reference to the last element in the container. For a JSON
container `c`, the expression `c.back()` is equivalent to `{ auto tmp = container `c`, the expression `c.back()` is equivalent to
c.end(); --tmp; return *tmp; }`. @code {.cpp}
auto tmp = c.end();
--tmp;
return *tmp;
@endcode
@return In case of a structured type (array or object), a reference to the @return In case of a structured type (array or object), a reference to the
last element is returned. In cast of number, string, or boolean values, a last element is returned. In cast of number, string, or boolean values, a
...@@ -3602,7 +3606,7 @@ class basic_json ...@@ -3602,7 +3606,7 @@ class basic_json
an empty array or object (undefined behavior, guarded by assertions). an empty array or object (undefined behavior, guarded by assertions).
@post The JSON value remains unchanged. @post The JSON value remains unchanged.
@throw std::out_of_range when called on null value. @throw std::out_of_range when called on `null` value.
@liveexample{The following code shows an example for `back()`.,back} @liveexample{The following code shows an example for `back()`.,back}
...@@ -3630,28 +3634,29 @@ class basic_json ...@@ -3630,28 +3634,29 @@ class basic_json
/*! /*!
@brief remove element given an iterator @brief remove element given an iterator
Removes the element specified by iterator @a pos. Invalidates iterators and Removes the element specified by iterator @a pos. The iterator @a pos must
references at or after the point of the erase, including the end() be valid and dereferenceable. Thus the `end()` iterator (which is valid,
iterator. The iterator @a pos must be valid and dereferenceable. Thus the but is not dereferenceable) cannot be used as a value for @a pos.
end() iterator (which is valid, but is not dereferenceable) cannot be used
as a value for @a pos.
If called on a primitive type other than null, the resulting JSON value If called on a primitive type other than `null`, the resulting JSON value
will be `null`. will be `null`.
@param[in] pos iterator to the element to remove @param[in] pos iterator to the element to remove
@return Iterator following the last removed element. If the iterator @a pos @return Iterator following the last removed element. If the iterator @a pos
refers to the last element, the end() iterator is returned. refers to the last element, the `end()` iterator is returned.
@tparam InteratorType an @ref iterator or @ref const_iterator @tparam InteratorType an @ref iterator or @ref const_iterator
@post Invalidates iterators and references at or after the point of the
erase, including the `end()` iterator.
@throw std::domain_error if called on a `null` value; example: `"cannot use @throw std::domain_error if called on a `null` value; example: `"cannot use
erase() with null"` erase() with null"`
@throw std::domain_error if called on an iterator which does not belong to @throw std::domain_error if called on an iterator which does not belong to
the current JSON value; example: `"iterator does not fit current value"` the current JSON value; example: `"iterator does not fit current value"`
@throw std::out_of_range if called on a primitive type with invalid @throw std::out_of_range if called on a primitive type with invalid
iterator (i.e., any iterator which is not end()); example: `"iterator out iterator (i.e., any iterator which is not `begin()`); example: `"iterator
of range"` out of range"`
@complexity The complexity depends on the type: @complexity The complexity depends on the type:
- objects: amortized constant - objects: amortized constant
...@@ -3736,21 +3741,23 @@ class basic_json ...@@ -3736,21 +3741,23 @@ class basic_json
/*! /*!
@brief remove elements given an iterator range @brief remove elements given an iterator range
Removes the element specified by the range `[first; last)`. Invalidates Removes the element specified by the range `[first; last)`. The iterator @a
iterators and references at or after the point of the erase, including the first does not need to be dereferenceable if `first == last`: erasing an
end() iterator. The iterator @a first does not need to be dereferenceable empty range is a no-op.
if `first == last`: erasing an empty range is a no-op.
If called on a primitive type other than null, the resulting JSON value If called on a primitive type other than `null`, the resulting JSON value
will be `null`. will be `null`.
@param[in] first iterator to the beginning of the range to remove @param[in] first iterator to the beginning of the range to remove
@param[in] last iterator past the end of the range to remove @param[in] last iterator past the end of the range to remove
@return Iterator following the last removed element. If the iterator @a @return Iterator following the last removed element. If the iterator @a
second refers to the last element, the end() iterator is returned. second refers to the last element, the `end()` iterator is returned.
@tparam InteratorType an @ref iterator or @ref const_iterator @tparam InteratorType an @ref iterator or @ref const_iterator
@post Invalidates iterators and references at or after the point of the
erase, including the `end()` iterator.
@throw std::domain_error if called on a `null` value; example: `"cannot use @throw std::domain_error if called on a `null` value; example: `"cannot use
erase() with null"` erase() with null"`
@throw std::domain_error if called on iterators which does not belong to @throw std::domain_error if called on iterators which does not belong to
...@@ -3848,9 +3855,12 @@ class basic_json ...@@ -3848,9 +3855,12 @@ class basic_json
@param[in] key value of the elements to remove @param[in] key value of the elements to remove
@return Number of elements removed. If ObjectType is the default `std::map` @return Number of elements removed. If @a ObjectType is the default
type, the return value will always be `0` (@a key was not found) or `1` (@a `std::map` type, the return value will always be `0` (@a key was not found)
key was found). or `1` (@a key was found).
@post References and iterators to the erased elements are invalidated.
Other references and iterators are not affected.
@throw std::domain_error when called on a type other than JSON object; @throw std::domain_error when called on a type other than JSON object;
example: `"cannot use erase() with null"` example: `"cannot use erase() with null"`
...@@ -3924,6 +3934,16 @@ class basic_json ...@@ -3924,6 +3934,16 @@ class basic_json
} }
} }
/// @}
////////////
// lookup //
////////////
/// @name lookup
/// @{
/*! /*!
@brief find an element in a JSON object @brief find an element in a JSON object
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment