diff --git a/annotated.html b/annotated.html
index c9144d771..e1ffdc335 100644
--- a/annotated.html
+++ b/annotated.html
@@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classes.html b/classes.html
index 3d4c02d6e..da4f1c4cd 100644
--- a/classes.html
+++ b/classes.html
@@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json-members.html b/classnlohmann_1_1basic__json-members.html
index 7a8870cd5..2e89f7409 100644
--- a/classnlohmann_1_1basic__json-members.html
+++ b/classnlohmann_1_1basic__json-members.html
@@ -232,7 +232,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json.html b/classnlohmann_1_1basic__json.html
index be94fbd75..927487ef9 100644
--- a/classnlohmann_1_1basic__json.html
+++ b/classnlohmann_1_1basic__json.html
@@ -90,7 +90,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator.html b/classnlohmann_1_1basic__json_1_1const__iterator.html
index a72c5bac4..e479b8fbf 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator.html
@@ -210,15 +210,16 @@ class nlohmann::basic_json::const_iterator
This class implements a const iterator for the basic_json class. From this class, the iterator class is derived.
- Requirements
- The class satisfies the following concept requirements:
-- RandomAccessIterator: The iterator that can be moved to point (forward and backward) to any element in constant time.
+- RandomAccessIterator: The iterator that can be moved to point (forward and backward) to any element in constant time.
+- Since
- version 1.0
-Definition at line 5111 of file json.hpp.
+Definition at line 5232 of file json.hpp.
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a019087161350d393f3e4ac841cdd3dbd.html b/classnlohmann_1_1basic__json_1_1const__iterator_a019087161350d393f3e4ac841cdd3dbd.html
index b50ffe3ed..8ec0fa627 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a019087161350d393f3e4ac841cdd3dbd.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a019087161350d393f3e4ac841cdd3dbd.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a17e5f5d3598e6901f3c1c1f7dc60589f.html b/classnlohmann_1_1basic__json_1_1const__iterator_a17e5f5d3598e6901f3c1c1f7dc60589f.html
index c601ca7eb..23aee65e0 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a17e5f5d3598e6901f3c1c1f7dc60589f.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a17e5f5d3598e6901f3c1c1f7dc60589f.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a1cba94e5a67ee52bc66b898a4e08359d.html b/classnlohmann_1_1basic__json_1_1const__iterator_a1cba94e5a67ee52bc66b898a4e08359d.html
index 7ea029b8c..0f13e48b9 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a1cba94e5a67ee52bc66b898a4e08359d.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a1cba94e5a67ee52bc66b898a4e08359d.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a211523a57024a43965862b497b89ab91.html b/classnlohmann_1_1basic__json_1_1const__iterator_a211523a57024a43965862b497b89ab91.html
index 42e4e8fee..9cc1b60a2 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a211523a57024a43965862b497b89ab91.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a211523a57024a43965862b497b89ab91.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a301749e9779adafd395369ac36df93df.html b/classnlohmann_1_1basic__json_1_1const__iterator_a301749e9779adafd395369ac36df93df.html
index 1aa6c5348..98de9dc83 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a301749e9779adafd395369ac36df93df.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a301749e9779adafd395369ac36df93df.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a36086a699b95e06976c11367b7d6ba53.html b/classnlohmann_1_1basic__json_1_1const__iterator_a36086a699b95e06976c11367b7d6ba53.html
index 56d2b1b55..52e0d31f5 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a36086a699b95e06976c11367b7d6ba53.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a36086a699b95e06976c11367b7d6ba53.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a4632d8307fc315f21e2ecc9ba5aa6346.html b/classnlohmann_1_1basic__json_1_1const__iterator_a4632d8307fc315f21e2ecc9ba5aa6346.html
index 8929891ae..9847e4f1c 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a4632d8307fc315f21e2ecc9ba5aa6346.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a4632d8307fc315f21e2ecc9ba5aa6346.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a4f7ac43b0ab34c387b1ae1a8e9c08467.html b/classnlohmann_1_1basic__json_1_1const__iterator_a4f7ac43b0ab34c387b1ae1a8e9c08467.html
index 9568f72de..21535370c 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a4f7ac43b0ab34c387b1ae1a8e9c08467.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a4f7ac43b0ab34c387b1ae1a8e9c08467.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a5aff013c03c1bdc248346c249bec7b67.html b/classnlohmann_1_1basic__json_1_1const__iterator_a5aff013c03c1bdc248346c249bec7b67.html
index 4dafcb940..3edb60336 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a5aff013c03c1bdc248346c249bec7b67.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a5aff013c03c1bdc248346c249bec7b67.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a62cad59e006eb7fa594c2c5b65a76610.html b/classnlohmann_1_1basic__json_1_1const__iterator_a62cad59e006eb7fa594c2c5b65a76610.html
index d8a2eb4f2..ac10d60d7 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a62cad59e006eb7fa594c2c5b65a76610.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a62cad59e006eb7fa594c2c5b65a76610.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a67848d4b7bfa576434ad9807147b5870.html b/classnlohmann_1_1basic__json_1_1const__iterator_a67848d4b7bfa576434ad9807147b5870.html
index 30732b584..29e73927a 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a67848d4b7bfa576434ad9807147b5870.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a67848d4b7bfa576434ad9807147b5870.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a6b3e43d2f45fa611825dbdf4e88fffe2.html b/classnlohmann_1_1basic__json_1_1const__iterator_a6b3e43d2f45fa611825dbdf4e88fffe2.html
index 31e0f6b53..6e01fedc6 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a6b3e43d2f45fa611825dbdf4e88fffe2.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a6b3e43d2f45fa611825dbdf4e88fffe2.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a83454954e4e16be3d5316f9322e91a34.html b/classnlohmann_1_1basic__json_1_1const__iterator_a83454954e4e16be3d5316f9322e91a34.html
index c921796cd..a33197380 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a83454954e4e16be3d5316f9322e91a34.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a83454954e4e16be3d5316f9322e91a34.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a86a1771e6658d0b14868df6c197d2353.html b/classnlohmann_1_1basic__json_1_1const__iterator_a86a1771e6658d0b14868df6c197d2353.html
index fefe016dd..35203fc8c 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a86a1771e6658d0b14868df6c197d2353.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a86a1771e6658d0b14868df6c197d2353.html
@@ -150,7 +150,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_a8d024cbc99db0d8106899f9fd9973735.html b/classnlohmann_1_1basic__json_1_1const__iterator_a8d024cbc99db0d8106899f9fd9973735.html
index fdc08cac9..24896237d 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_a8d024cbc99db0d8106899f9fd9973735.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_a8d024cbc99db0d8106899f9fd9973735.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ab74b39747a9dad60650a57133fca85b3.html b/classnlohmann_1_1basic__json_1_1const__iterator_ab74b39747a9dad60650a57133fca85b3.html
index 161f54640..5b319848d 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ab74b39747a9dad60650a57133fca85b3.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ab74b39747a9dad60650a57133fca85b3.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ab7dacd8e3ee9b3756bfcdb87dd55a515.html b/classnlohmann_1_1basic__json_1_1const__iterator_ab7dacd8e3ee9b3756bfcdb87dd55a515.html
index 20f74d801..5ff0e71b0 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ab7dacd8e3ee9b3756bfcdb87dd55a515.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ab7dacd8e3ee9b3756bfcdb87dd55a515.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ab9d31bf0d0b4d7310c858a04ce84a52f.html b/classnlohmann_1_1basic__json_1_1const__iterator_ab9d31bf0d0b4d7310c858a04ce84a52f.html
index df1862ed6..f4d4bac5a 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ab9d31bf0d0b4d7310c858a04ce84a52f.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ab9d31bf0d0b4d7310c858a04ce84a52f.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_abb1921cbf0ad4036c83bc6303e22171f.html b/classnlohmann_1_1basic__json_1_1const__iterator_abb1921cbf0ad4036c83bc6303e22171f.html
index e0c3eb21e..6a0d58812 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_abb1921cbf0ad4036c83bc6303e22171f.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_abb1921cbf0ad4036c83bc6303e22171f.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_abbacd95955c602efc9a58ed1ffdb46c4.html b/classnlohmann_1_1basic__json_1_1const__iterator_abbacd95955c602efc9a58ed1ffdb46c4.html
index 6b4551424..65e521f18 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_abbacd95955c602efc9a58ed1ffdb46c4.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_abbacd95955c602efc9a58ed1ffdb46c4.html
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -152,7 +152,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ac36b9187de43721a4bf1b052578bb80b.html b/classnlohmann_1_1basic__json_1_1const__iterator_ac36b9187de43721a4bf1b052578bb80b.html
index 6c89d5ed1..433cd2f10 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ac36b9187de43721a4bf1b052578bb80b.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ac36b9187de43721a4bf1b052578bb80b.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ac634a659837f5aebc97125e031de23b5.html b/classnlohmann_1_1basic__json_1_1const__iterator_ac634a659837f5aebc97125e031de23b5.html
index e6b8b9634..27527ca4e 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ac634a659837f5aebc97125e031de23b5.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ac634a659837f5aebc97125e031de23b5.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_acea5b75d1087e2a92833946d9dc547ff.html b/classnlohmann_1_1basic__json_1_1const__iterator_acea5b75d1087e2a92833946d9dc547ff.html
index 28356ef68..a63f6db04 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_acea5b75d1087e2a92833946d9dc547ff.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_acea5b75d1087e2a92833946d9dc547ff.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ada3100cdb8700566051828f1355fa745.html b/classnlohmann_1_1basic__json_1_1const__iterator_ada3100cdb8700566051828f1355fa745.html
index 82d0de2b5..e206a5fad 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ada3100cdb8700566051828f1355fa745.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ada3100cdb8700566051828f1355fa745.html
@@ -139,7 +139,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -149,7 +149,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_adb50d6043ace464d9f694869724d7fb2.html b/classnlohmann_1_1basic__json_1_1const__iterator_adb50d6043ace464d9f694869724d7fb2.html
index 4d26fffd7..942632017 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_adb50d6043ace464d9f694869724d7fb2.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_adb50d6043ace464d9f694869724d7fb2.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_adda9a4bd7f0edb9cb39dc0dca3d4a286.html b/classnlohmann_1_1basic__json_1_1const__iterator_adda9a4bd7f0edb9cb39dc0dca3d4a286.html
index 02bdd4ade..d373cbf7e 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_adda9a4bd7f0edb9cb39dc0dca3d4a286.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_adda9a4bd7f0edb9cb39dc0dca3d4a286.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_adf6f9d3f8f8d8b1ccedabb4f04c098ad.html b/classnlohmann_1_1basic__json_1_1const__iterator_adf6f9d3f8f8d8b1ccedabb4f04c098ad.html
index b9b5fc433..563241367 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_adf6f9d3f8f8d8b1ccedabb4f04c098ad.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_adf6f9d3f8f8d8b1ccedabb4f04c098ad.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_ae480d5c86e5e1129d53d1e19782017a6.html b/classnlohmann_1_1basic__json_1_1const__iterator_ae480d5c86e5e1129d53d1e19782017a6.html
index d45c15caf..f8804045e 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_ae480d5c86e5e1129d53d1e19782017a6.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_ae480d5c86e5e1129d53d1e19782017a6.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_aebd099d9a70ffe760242ef24046c9002.html b/classnlohmann_1_1basic__json_1_1const__iterator_aebd099d9a70ffe760242ef24046c9002.html
index 3626f25fc..669c8fac8 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_aebd099d9a70ffe760242ef24046c9002.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_aebd099d9a70ffe760242ef24046c9002.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_af34f68f1ce670e7f25ce267b2b1e64ab.html b/classnlohmann_1_1basic__json_1_1const__iterator_af34f68f1ce670e7f25ce267b2b1e64ab.html
index 930b695d4..499f9ed26 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_af34f68f1ce670e7f25ce267b2b1e64ab.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_af34f68f1ce670e7f25ce267b2b1e64ab.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1const__iterator_af55564e391b23e41abe78bc4bbe4edcb.html b/classnlohmann_1_1basic__json_1_1const__iterator_af55564e391b23e41abe78bc4bbe4edcb.html
index 3832f76e0..cf870d91a 100644
--- a/classnlohmann_1_1basic__json_1_1const__iterator_af55564e391b23e41abe78bc4bbe4edcb.html
+++ b/classnlohmann_1_1basic__json_1_1const__iterator_af55564e391b23e41abe78bc4bbe4edcb.html
@@ -143,7 +143,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -153,7 +153,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator-members.html b/classnlohmann_1_1basic__json_1_1iterator-members.html
index d0ba9062a..87cf3a8eb 100644
--- a/classnlohmann_1_1basic__json_1_1iterator-members.html
+++ b/classnlohmann_1_1basic__json_1_1iterator-members.html
@@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json_1_1iterator.html b/classnlohmann_1_1basic__json_1_1iterator.html
index f6acab77e..efe62afed 100644
--- a/classnlohmann_1_1basic__json_1_1iterator.html
+++ b/classnlohmann_1_1basic__json_1_1iterator.html
@@ -261,15 +261,16 @@ class nlohmann::basic_json::iterator
- Requirements
- The class satisfies the following concept requirements:
- RandomAccessIterator: The iterator that can be moved to point (forward and backward) to any element in constant time.
-- OutputIterator: It is possible to write to the pointed-to element.
+- OutputIterator: It is possible to write to the pointed-to element.
+- Since
- version 1.0
-Definition at line 5613 of file json.hpp.
+Definition at line 5714 of file json.hpp.
diff --git a/classnlohmann_1_1basic__json_1_1iterator__wrapper-members.html b/classnlohmann_1_1basic__json_1_1iterator__wrapper-members.html
index 048254f49..5fe863d20 100644
--- a/classnlohmann_1_1basic__json_1_1iterator__wrapper-members.html
+++ b/classnlohmann_1_1basic__json_1_1iterator__wrapper-members.html
@@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json_1_1iterator__wrapper.html b/classnlohmann_1_1basic__json_1_1iterator__wrapper.html
index 4cb560e3c..2b98ddc8b 100644
--- a/classnlohmann_1_1basic__json_1_1iterator__wrapper.html
+++ b/classnlohmann_1_1basic__json_1_1iterator__wrapper.html
@@ -119,11 +119,11 @@ class nlohmann::basic_json::iterator_wrapper
This class allows to access iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.
-Definition at line 5848 of file json.hpp.
+Definition at line 5951 of file json.hpp.
diff --git a/classnlohmann_1_1basic__json_1_1iterator__wrapper_a784f17dec56c1ec90b0b73eb8307ea7d.html b/classnlohmann_1_1basic__json_1_1iterator__wrapper_a784f17dec56c1ec90b0b73eb8307ea7d.html
index 2ee04f580..5e07e52eb 100644
--- a/classnlohmann_1_1basic__json_1_1iterator__wrapper_a784f17dec56c1ec90b0b73eb8307ea7d.html
+++ b/classnlohmann_1_1basic__json_1_1iterator__wrapper_a784f17dec56c1ec90b0b73eb8307ea7d.html
@@ -115,7 +115,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -125,7 +125,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator__wrapper_a80305d6ac43b6fb53c62256e450485ac.html b/classnlohmann_1_1basic__json_1_1iterator__wrapper_a80305d6ac43b6fb53c62256e450485ac.html
index 95850f422..3fb2a0232 100644
--- a/classnlohmann_1_1basic__json_1_1iterator__wrapper_a80305d6ac43b6fb53c62256e450485ac.html
+++ b/classnlohmann_1_1basic__json_1_1iterator__wrapper_a80305d6ac43b6fb53c62256e450485ac.html
@@ -114,7 +114,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -124,7 +124,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator__wrapper_ab5951e20b05998e768943acd0b418c81.html b/classnlohmann_1_1basic__json_1_1iterator__wrapper_ab5951e20b05998e768943acd0b418c81.html
index a75b3ec19..06a5853fa 100644
--- a/classnlohmann_1_1basic__json_1_1iterator__wrapper_ab5951e20b05998e768943acd0b418c81.html
+++ b/classnlohmann_1_1basic__json_1_1iterator__wrapper_ab5951e20b05998e768943acd0b418c81.html
@@ -114,7 +114,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -124,7 +124,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a037e5f3de196ff4cea8a95a8a4e35882.html b/classnlohmann_1_1basic__json_1_1iterator_a037e5f3de196ff4cea8a95a8a4e35882.html
index 7e74739bb..c465fa610 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a037e5f3de196ff4cea8a95a8a4e35882.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a037e5f3de196ff4cea8a95a8a4e35882.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a0a43bd93e6e46645ed0b93d3af7bfe22.html b/classnlohmann_1_1basic__json_1_1iterator_a0a43bd93e6e46645ed0b93d3af7bfe22.html
index 4a8afac75..65b89aed9 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a0a43bd93e6e46645ed0b93d3af7bfe22.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a0a43bd93e6e46645ed0b93d3af7bfe22.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a0c0acb68cc2a50a0e8782f860184883f.html b/classnlohmann_1_1basic__json_1_1iterator_a0c0acb68cc2a50a0e8782f860184883f.html
index dcf193ddb..1ea9dbc8e 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a0c0acb68cc2a50a0e8782f860184883f.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a0c0acb68cc2a50a0e8782f860184883f.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a0eb7ac9b746fb6f931ae728f70f92a8e.html b/classnlohmann_1_1basic__json_1_1iterator_a0eb7ac9b746fb6f931ae728f70f92a8e.html
index 279fd767c..7574a73fe 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a0eb7ac9b746fb6f931ae728f70f92a8e.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a0eb7ac9b746fb6f931ae728f70f92a8e.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a1220b360a07b0605f7d2f4b3cfd16736.html b/classnlohmann_1_1basic__json_1_1iterator_a1220b360a07b0605f7d2f4b3cfd16736.html
index 01b3a478d..917a35b4a 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a1220b360a07b0605f7d2f4b3cfd16736.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a1220b360a07b0605f7d2f4b3cfd16736.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a21d32a4547ba4cbadd8b435a6a0d0e1b.html b/classnlohmann_1_1basic__json_1_1iterator_a21d32a4547ba4cbadd8b435a6a0d0e1b.html
index f8e455ec8..305d14ba0 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a21d32a4547ba4cbadd8b435a6a0d0e1b.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a21d32a4547ba4cbadd8b435a6a0d0e1b.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a302d810a0685f8d39368eaa65c833acf.html b/classnlohmann_1_1basic__json_1_1iterator_a302d810a0685f8d39368eaa65c833acf.html
index a943e56d3..a77eb4ebd 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a302d810a0685f8d39368eaa65c833acf.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a302d810a0685f8d39368eaa65c833acf.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a33277dbf06ac5c1e7102e26f6b5e2c00.html b/classnlohmann_1_1basic__json_1_1iterator_a33277dbf06ac5c1e7102e26f6b5e2c00.html
index df33e0f6b..0a6574758 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a33277dbf06ac5c1e7102e26f6b5e2c00.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a33277dbf06ac5c1e7102e26f6b5e2c00.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a4ae612fa9eb59784047b40f0419db65d.html b/classnlohmann_1_1basic__json_1_1iterator_a4ae612fa9eb59784047b40f0419db65d.html
index d294c1ed4..3694ff99d 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a4ae612fa9eb59784047b40f0419db65d.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a4ae612fa9eb59784047b40f0419db65d.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a4f6e03ae3bb674ebf0b727f74957c12f.html b/classnlohmann_1_1basic__json_1_1iterator_a4f6e03ae3bb674ebf0b727f74957c12f.html
index ca579c765..2edb6bf2e 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a4f6e03ae3bb674ebf0b727f74957c12f.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a4f6e03ae3bb674ebf0b727f74957c12f.html
@@ -139,7 +139,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a6e91e9d94a0e14d2fc28cfdf3beac2b1.html b/classnlohmann_1_1basic__json_1_1iterator_a6e91e9d94a0e14d2fc28cfdf3beac2b1.html
index 6726bb34c..f50f19e25 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a6e91e9d94a0e14d2fc28cfdf3beac2b1.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a6e91e9d94a0e14d2fc28cfdf3beac2b1.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a7031e759ee52d1283aada0ff81108a5e.html b/classnlohmann_1_1basic__json_1_1iterator_a7031e759ee52d1283aada0ff81108a5e.html
index 2fbf22299..025541d8b 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a7031e759ee52d1283aada0ff81108a5e.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a7031e759ee52d1283aada0ff81108a5e.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a94285e2ade0bfef829b81377bbbca6cf.html b/classnlohmann_1_1basic__json_1_1iterator_a94285e2ade0bfef829b81377bbbca6cf.html
index 64f3bd7bf..7511f7f69 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a94285e2ade0bfef829b81377bbbca6cf.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a94285e2ade0bfef829b81377bbbca6cf.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_a9fcfda575b08d0c73b6274cdbbe7f184.html b/classnlohmann_1_1basic__json_1_1iterator_a9fcfda575b08d0c73b6274cdbbe7f184.html
index cd0e999d8..46dc3cd2f 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_a9fcfda575b08d0c73b6274cdbbe7f184.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_a9fcfda575b08d0c73b6274cdbbe7f184.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_aa2bd10afdcfc70acb8eaabbd2f6496f0.html b/classnlohmann_1_1basic__json_1_1iterator_aa2bd10afdcfc70acb8eaabbd2f6496f0.html
index c1ecf1784..e3b30f9c7 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_aa2bd10afdcfc70acb8eaabbd2f6496f0.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_aa2bd10afdcfc70acb8eaabbd2f6496f0.html
@@ -120,7 +120,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -130,7 +130,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_ab220a0cc3fe410fbae4524208bd5834f.html b/classnlohmann_1_1basic__json_1_1iterator_ab220a0cc3fe410fbae4524208bd5834f.html
index d94020040..5b059ae20 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_ab220a0cc3fe410fbae4524208bd5834f.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_ab220a0cc3fe410fbae4524208bd5834f.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_ab5cf753cb2f8ce53b9f3e54c39e50ee3.html b/classnlohmann_1_1basic__json_1_1iterator_ab5cf753cb2f8ce53b9f3e54c39e50ee3.html
index b77eb4a3c..9a535cdef 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_ab5cf753cb2f8ce53b9f3e54c39e50ee3.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_ab5cf753cb2f8ce53b9f3e54c39e50ee3.html
@@ -132,7 +132,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -142,7 +142,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_abaebf4e21956dd20d9f862fa5647d32d.html b/classnlohmann_1_1basic__json_1_1iterator_abaebf4e21956dd20d9f862fa5647d32d.html
index e50bf65e4..3e1dfc533 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_abaebf4e21956dd20d9f862fa5647d32d.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_abaebf4e21956dd20d9f862fa5647d32d.html
@@ -120,7 +120,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -130,7 +130,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_af64127418c567660d92b1afdfe9676db.html b/classnlohmann_1_1basic__json_1_1iterator_af64127418c567660d92b1afdfe9676db.html
index 3f68ccf05..a9eed5d52 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_af64127418c567660d92b1afdfe9676db.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_af64127418c567660d92b1afdfe9676db.html
@@ -131,7 +131,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -141,7 +141,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1iterator_afe65b5a0572c7bfdd7ccc942bb8e9fe2.html b/classnlohmann_1_1basic__json_1_1iterator_afe65b5a0572c7bfdd7ccc942bb8e9fe2.html
index e3f20165a..a4e5cf10a 100644
--- a/classnlohmann_1_1basic__json_1_1iterator_afe65b5a0572c7bfdd7ccc942bb8e9fe2.html
+++ b/classnlohmann_1_1basic__json_1_1iterator_afe65b5a0572c7bfdd7ccc942bb8e9fe2.html
@@ -120,7 +120,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -130,7 +130,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator-members.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator-members.html
index 4e2226818..f4e16febf 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator-members.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator-members.html
@@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator.html
index a08b7b684..f4d1dea5a 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator.html
@@ -165,15 +165,16 @@ class nlohmann::basic_json::json_reverse_iterator< Base >
- Requirements
- The class satisfies the following concept requirements:
+- Since
- version 1.0
-Definition at line 226 of file json.hpp.
+Definition at line 232 of file json.hpp.
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a03e542423284327d3801cf078f1c2b44.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a03e542423284327d3801cf078f1c2b44.html
index cf934babf..23eedb18f 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a03e542423284327d3801cf078f1c2b44.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a03e542423284327d3801cf078f1c2b44.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a0b494ef7570d031216f907d2c85ec323.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a0b494ef7570d031216f907d2c85ec323.html
index 1240fcfdc..00b109c73 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a0b494ef7570d031216f907d2c85ec323.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a0b494ef7570d031216f907d2c85ec323.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a15e9cf4c5a43238e82ab69c4a295c491.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a15e9cf4c5a43238e82ab69c4a295c491.html
index 5933d0d71..96f584594 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a15e9cf4c5a43238e82ab69c4a295c491.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a15e9cf4c5a43238e82ab69c4a295c491.html
@@ -128,7 +128,7 @@ template<typename Base >
@@ -138,7 +138,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a1c84e6d1f047ab4105fa665f455158a7.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a1c84e6d1f047ab4105fa665f455158a7.html
index 830fcdfa7..449a9f2a1 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a1c84e6d1f047ab4105fa665f455158a7.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a1c84e6d1f047ab4105fa665f455158a7.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a2a1dc92fbec862883c8b89755c787c99.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a2a1dc92fbec862883c8b89755c787c99.html
index deedd2784..60558c48e 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a2a1dc92fbec862883c8b89755c787c99.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a2a1dc92fbec862883c8b89755c787c99.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a5ee9ec91a6ddcd8d72278d681361626f.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a5ee9ec91a6ddcd8d72278d681361626f.html
index 048060bc0..26ec7c672 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a5ee9ec91a6ddcd8d72278d681361626f.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a5ee9ec91a6ddcd8d72278d681361626f.html
@@ -117,7 +117,7 @@ template<typename Base >
@@ -127,7 +127,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a61d31531e0dfc5448e7fa15678b05bbe.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a61d31531e0dfc5448e7fa15678b05bbe.html
index eb326a7cf..57eedc2a1 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a61d31531e0dfc5448e7fa15678b05bbe.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a61d31531e0dfc5448e7fa15678b05bbe.html
@@ -128,7 +128,7 @@ template<typename Base >
@@ -138,7 +138,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a6bd38ed124df0332ba3263a9176b0101.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a6bd38ed124df0332ba3263a9176b0101.html
index acfb69797..9c8bed967 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a6bd38ed124df0332ba3263a9176b0101.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a6bd38ed124df0332ba3263a9176b0101.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a70086e392779ecbbc9e6845b2be126a0.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a70086e392779ecbbc9e6845b2be126a0.html
index b6453c1d3..277e5bc17 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a70086e392779ecbbc9e6845b2be126a0.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_a70086e392779ecbbc9e6845b2be126a0.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_aa82b48aee07baee284f8340b37ec6864.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_aa82b48aee07baee284f8340b37ec6864.html
index 53fb976a2..00f148228 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_aa82b48aee07baee284f8340b37ec6864.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_aa82b48aee07baee284f8340b37ec6864.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ab6245ab29d8481ef2a2351c02cc31d4d.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ab6245ab29d8481ef2a2351c02cc31d4d.html
index 85d4e9338..fb18402a1 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ab6245ab29d8481ef2a2351c02cc31d4d.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ab6245ab29d8481ef2a2351c02cc31d4d.html
@@ -117,7 +117,7 @@ template<typename Base >
@@ -127,7 +127,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ac427d8f61858c13b7c16649bfbf75e76.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ac427d8f61858c13b7c16649bfbf75e76.html
index 5c1b557c4..4f0cbe1ef 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ac427d8f61858c13b7c16649bfbf75e76.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ac427d8f61858c13b7c16649bfbf75e76.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ad3d6837b6f97065625c6c65f62f4b6d4.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ad3d6837b6f97065625c6c65f62f4b6d4.html
index 0457e698b..cd6f306eb 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ad3d6837b6f97065625c6c65f62f4b6d4.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ad3d6837b6f97065625c6c65f62f4b6d4.html
@@ -128,7 +128,7 @@ template<typename Base >
@@ -138,7 +138,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ae988bd36b7d098b1157871f83b2d6265.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ae988bd36b7d098b1157871f83b2d6265.html
index 8112f9809..ec79c0a5c 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ae988bd36b7d098b1157871f83b2d6265.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_ae988bd36b7d098b1157871f83b2d6265.html
@@ -129,7 +129,7 @@ template<typename Base >
@@ -139,7 +139,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_af972fce017b24906236ab235857a11a8.html b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_af972fce017b24906236ab235857a11a8.html
index 9f55f6fec..69f15888c 100644
--- a/classnlohmann_1_1basic__json_1_1json__reverse__iterator_af972fce017b24906236ab235857a11a8.html
+++ b/classnlohmann_1_1basic__json_1_1json__reverse__iterator_af972fce017b24906236ab235857a11a8.html
@@ -128,7 +128,7 @@ template<typename Base >
@@ -138,7 +138,7 @@ template<typename Base >
diff --git a/classnlohmann_1_1basic__json_a01a2643289b69cd71d9b3f3fc209b748.html b/classnlohmann_1_1basic__json_a01a2643289b69cd71d9b3f3fc209b748.html
index 7b8d0eb02..382a4e367 100644
--- a/classnlohmann_1_1basic__json_a01a2643289b69cd71d9b3f3fc209b748.html
+++ b/classnlohmann_1_1basic__json_a01a2643289b69cd71d9b3f3fc209b748.html
@@ -273,14 +273,15 @@ template<template< typename U, typename V, typename...Args > class Obje
16 std::cout <<
"number of elements with key \"two\": " << count_two <<
'\n';
17 std::cout <<
"number of elements with key \"three\": " << count_three <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-size_type count(typename object_t::key_type key) const
returns the number of occurrences of a key in a JSON object
+a class to store JSON values
+namespace for Niels Lohmann
+size_type count(typename object_t::key_type key) const
returns the number of occurrences of a key in a JSON object
Output (play with this example online): number of elements with key "two": 1
number of elements with key "three": 0
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/count.cpp -o count
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/count.cpp -o count
+- Since
- version 1.0
-Definition at line 3278 of file json.hpp.
+Definition at line 3338 of file json.hpp.
@@ -290,7 +291,7 @@ number of elements with key "three": 0
diff --git a/classnlohmann_1_1basic__json_a034bccea9f5400650443e9f12e67b079.html b/classnlohmann_1_1basic__json_a034bccea9f5400650443e9f12e67b079.html
index 6ea7bae1b..669713569 100644
--- a/classnlohmann_1_1basic__json_a034bccea9f5400650443e9f12e67b079.html
+++ b/classnlohmann_1_1basic__json_a034bccea9f5400650443e9f12e67b079.html
@@ -287,8 +287,8 @@ In case the parameter value is not a number, a JSON null value is creat
19 std::cout << j_nan <<
'\n';
20 std::cout << j23 <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 42.2299995422363
null
23.42
@@ -296,7 +296,7 @@ null
- See also
- basic_json(const number_float_t) – create a number value (floating-point)
- Since
- version 1.0
-Definition at line 1281 of file json.hpp.
+Definition at line 1304 of file json.hpp.
@@ -306,7 +306,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a088460b5d95f384a4f2ec9e52f4f66ba.html b/classnlohmann_1_1basic__json_a088460b5d95f384a4f2ec9e52f4f66ba.html
index 34aede01b..9339b5f54 100644
--- a/classnlohmann_1_1basic__json_a088460b5d95f384a4f2ec9e52f4f66ba.html
+++ b/classnlohmann_1_1basic__json_a088460b5d95f384a4f2ec9e52f4f66ba.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
24 std::cout << j_string.
is_string() <<
'\n';
-a class to store JSON values
-bool is_string() const noexcept
return whether value is a string
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_string() const noexcept
return whether value is a string
+namespace for Niels Lohmann
Output (play with this example online): false
false
false
@@ -283,9 +283,10 @@ false
false
false
true
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_string.cpp -o is_string
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_string.cpp -o is_string
+- Since
- version 1.0
-Definition at line 2040 of file json.hpp.
+Definition at line 2100 of file json.hpp.
@@ -295,7 +296,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a0a7560122349628cf4942a316aa6d21f.html b/classnlohmann_1_1basic__json_a0a7560122349628cf4942a316aa6d21f.html
index 8b1578f98..f39ec7de5 100644
--- a/classnlohmann_1_1basic__json_a0a7560122349628cf4942a316aa6d21f.html
+++ b/classnlohmann_1_1basic__json_a0a7560122349628cf4942a316aa6d21f.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << array <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): [1,2,3,4,5]
null
[1,2,3,4,5,6,7]
["first","second"]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+- Since
- version 1.0
-Definition at line 3828 of file json.hpp.
+Definition at line 3916 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a0a9c6a1fccc4db365860463e8203eb38.html b/classnlohmann_1_1basic__json_a0a9c6a1fccc4db365860463e8203eb38.html
index d06910c3b..06fd9bed9 100644
--- a/classnlohmann_1_1basic__json_a0a9c6a1fccc4db365860463e8203eb38.html
+++ b/classnlohmann_1_1basic__json_a0a9c6a1fccc4db365860463e8203eb38.html
@@ -275,15 +275,15 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j <<
'\n';
-a class to store JSON values
-ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
-namespace for Niels Lohmann
+a class to store JSON values
+ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
+namespace for Niels Lohmann
Output (play with this example online): {"one":1,"two":2}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__object_t.cpp -o basic_json__object_t
- See also
- basic_json(const CompatibleObjectType&) – create an object value from a compatible STL container
- Since
- version 1.0
-Definition at line 910 of file json.hpp.
+Definition at line 933 of file json.hpp.
@@ -293,7 +293,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a0bb6ea56c89560cce8003485bffe49d4.html b/classnlohmann_1_1basic__json_a0bb6ea56c89560cce8003485bffe49d4.html
index 652ec3bcf..b2750580d 100644
--- a/classnlohmann_1_1basic__json_a0bb6ea56c89560cce8003485bffe49d4.html
+++ b/classnlohmann_1_1basic__json_a0bb6ea56c89560cce8003485bffe49d4.html
@@ -289,8 +289,8 @@ template<typename CompatibleNumberIntegerType , typename std::enable_if<
25 std::cout << j17 <<
'\n';
26 std::cout << j8 <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 42
23
1024
@@ -302,7 +302,7 @@ template<typename CompatibleNumberIntegerType , typename std::enable_if<
basic_json(const int) – create a number value (integer)
- Since
- version 1.0
-Definition at line 1206 of file json.hpp.
+Definition at line 1229 of file json.hpp.
@@ -312,7 +312,7 @@ template<typename CompatibleNumberIntegerType , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_a0e372f4c5a90c6be7242a2d7a3709b48.html b/classnlohmann_1_1basic__json_a0e372f4c5a90c6be7242a2d7a3709b48.html
index f975fb728..b1b0720fb 100644
--- a/classnlohmann_1_1basic__json_a0e372f4c5a90c6be7242a2d7a3709b48.html
+++ b/classnlohmann_1_1basic__json_a0e372f4c5a90c6be7242a2d7a3709b48.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout <<
object <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): {"one":1,"two":2}
null
{"four":4,"one":1,"three":3,"two":2}
{"A":"a","B":"b"}
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back__object_t__value.cpp -o push_back__object_t__value
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back__object_t__value.cpp -o push_back__object_t__value
+- Since
- version 1.0
-Definition at line 3875 of file json.hpp.
+Definition at line 3965 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a114095c452ca2f4ba976548df3da68be.html b/classnlohmann_1_1basic__json_a114095c452ca2f4ba976548df3da68be.html
index 2a2d4b3cc..8c92368ec 100644
--- a/classnlohmann_1_1basic__json_a114095c452ca2f4ba976548df3da68be.html
+++ b/classnlohmann_1_1basic__json_a114095c452ca2f4ba976548df3da68be.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
23 std::cout << j_array.
is_null() <<
'\n';
24 std::cout << j_string.
is_null() <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-bool is_null() const noexcept
return whether value is null
+a class to store JSON values
+namespace for Niels Lohmann
+bool is_null() const noexcept
return whether value is null
Output (play with this example online): true
false
false
@@ -283,9 +283,10 @@ false
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_null.cpp -o is_null
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_null.cpp -o is_null
+- Since
- version 1.0
-Definition at line 1918 of file json.hpp.
+Definition at line 1954 of file json.hpp.
@@ -295,7 +296,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a11c3dd843c21c58daa651e84046a82af.html b/classnlohmann_1_1basic__json_a11c3dd843c21c58daa651e84046a82af.html
index ebe87b1a7..1efca3a21 100644
--- a/classnlohmann_1_1basic__json_a11c3dd843c21c58daa651e84046a82af.html
+++ b/classnlohmann_1_1basic__json_a11c3dd843c21c58daa651e84046a82af.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
23 std::cout << j_array.
is_array() <<
'\n';
24 std::cout << j_string.
is_array() <<
'\n';
-bool is_array() const noexcept
return whether value is an array
-a class to store JSON values
-namespace for Niels Lohmann
+bool is_array() const noexcept
return whether value is an array
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): false
false
false
@@ -283,9 +283,10 @@ false
false
true
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_array.cpp -o is_array
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_array.cpp -o is_array
+- Since
- version 1.0
-Definition at line 2023 of file json.hpp.
+Definition at line 2081 of file json.hpp.
@@ -295,7 +296,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a122640e7e2db1814fc7bbb3c122ec76e.html b/classnlohmann_1_1basic__json_a122640e7e2db1814fc7bbb3c122ec76e.html
index bbe62f5f5..f24fdc52c 100644
--- a/classnlohmann_1_1basic__json_a122640e7e2db1814fc7bbb3c122ec76e.html
+++ b/classnlohmann_1_1basic__json_a122640e7e2db1814fc7bbb3c122ec76e.html
@@ -293,15 +293,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" == " << number_2 <<
" " << (number_1 == number_2) <<
'\n';
22 std::cout << string_1 <<
" == " << string_2 <<
" " << (string_1 == string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] == [1,2,4] false
{"A":"a","B":"b"} == {"A":"a","B":"b"} true
17 == 17 true
"foo" == "bar" false
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__equal.cpp -o operator__equal
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__equal.cpp -o operator__equal
+- Since
- version 1.0
-Definition at line 4244 of file json.hpp.
+Definition at line 4356 of file json.hpp.
@@ -311,7 +312,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a13e5642dbfa1602c937d295a085413cc.html b/classnlohmann_1_1basic__json_a13e5642dbfa1602c937d295a085413cc.html
index 737019dac..6d11888f3 100644
--- a/classnlohmann_1_1basic__json_a13e5642dbfa1602c937d295a085413cc.html
+++ b/classnlohmann_1_1basic__json_a13e5642dbfa1602c937d295a085413cc.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a15e468968cd4d0e4fd566044d66ada24.html b/classnlohmann_1_1basic__json_a15e468968cd4d0e4fd566044d66ada24.html
index 0d656fc7f..57a868759 100644
--- a/classnlohmann_1_1basic__json_a15e468968cd4d0e4fd566044d66ada24.html
+++ b/classnlohmann_1_1basic__json_a15e468968cd4d0e4fd566044d66ada24.html
@@ -275,9 +275,9 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j <<
'\n';
-StringType string_t
a type for a string
-a class to store JSON values
-namespace for Niels Lohmann
+StringType string_t
a type for a string
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): "The quick brown fox jumps over the lazy doc"
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__string_t.cpp -o basic_json__string_t
- See also
- basic_json(const typename string_t::value_type*) – create a string value from a character pointer
@@ -285,7 +285,7 @@ template<template< typename U, typename V, typename...Args > class Obje
basic_json(const CompatibleStringType&) – create a string value from a compatible string container
- Since
- version 1.0
-Definition at line 1035 of file json.hpp.
+Definition at line 1058 of file json.hpp.
@@ -295,7 +295,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a1683189bd539313b5559f07961166c8b.html b/classnlohmann_1_1basic__json_a1683189bd539313b5559f07961166c8b.html
index f924b9766..a6b1e3d98 100644
--- a/classnlohmann_1_1basic__json_a1683189bd539313b5559f07961166c8b.html
+++ b/classnlohmann_1_1basic__json_a1683189bd539313b5559f07961166c8b.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a16a275d0201e9aedc87c933c764b8869.html b/classnlohmann_1_1basic__json_a16a275d0201e9aedc87c933c764b8869.html
index 2a56b7f11..8d6fdb5d7 100644
--- a/classnlohmann_1_1basic__json_a16a275d0201e9aedc87c933c764b8869.html
+++ b/classnlohmann_1_1basic__json_a16a275d0201e9aedc87c933c764b8869.html
@@ -289,17 +289,18 @@ template<template< typename U, typename V, typename...Args > class Obje
25 std::cout <<
"out of range" <<
'\n';
-a class to store JSON values
-reference at(size_type idx)
access specified array element with bounds checking
-namespace for Niels Lohmann
+a class to store JSON values
+reference at(size_type idx)
access specified array element with bounds checking
+namespace for Niels Lohmann
Output (play with this example online): "il brutto"
out of range
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__object_t_key_type_const.cpp -o at__object_t_key_type_const
- See also
- operator[](const typename object_t::key_type&) for unchecked access by reference
-
-value() for access by value with a default value
+value() for access by value with a default value
+- Since
- version 1.0
-Definition at line 2643 of file json.hpp.
+Definition at line 2677 of file json.hpp.
@@ -309,7 +310,7 @@ out of range
diff --git a/classnlohmann_1_1basic__json_a190d719446e7016879c4b961c9cf9072.html b/classnlohmann_1_1basic__json_a190d719446e7016879c4b961c9cf9072.html
index f428b2595..0b392baee 100644
--- a/classnlohmann_1_1basic__json_a190d719446e7016879c4b961c9cf9072.html
+++ b/classnlohmann_1_1basic__json_a190d719446e7016879c4b961c9cf9072.html
@@ -277,9 +277,9 @@ template<typename T , typename std::enable_if<
13 std::cout << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-NumberIntegerType number_integer_t
a type for a number (integer)
+a class to store JSON values
+namespace for Niels Lohmann
+NumberIntegerType number_integer_t
a type for a number (integer)
Output (play with this example online): 42
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__number_integer_t.cpp -o basic_json__number_integer_t
- See also
- basic_json(const int) – create a number value (integer)
@@ -287,7 +287,7 @@ template<typename T , typename std::enable_if<
basic_json(const CompatibleNumberIntegerType) – create a number value (integer) from a compatible number type
- Since
- version 1.0
-Definition at line 1142 of file json.hpp.
+Definition at line 1165 of file json.hpp.
@@ -297,7 +297,7 @@ template<typename T , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_a231b02148577b69a154b2ce2c87a5522.html b/classnlohmann_1_1basic__json_a231b02148577b69a154b2ce2c87a5522.html
index d37977ed9..c944008a6 100644
--- a/classnlohmann_1_1basic__json_a231b02148577b69a154b2ce2c87a5522.html
+++ b/classnlohmann_1_1basic__json_a231b02148577b69a154b2ce2c87a5522.html
@@ -271,7 +271,7 @@ template<template< typename U, typename V, typename...Args > class Obje
-Definition at line 595 of file json.hpp.
+Definition at line 611 of file json.hpp.
@@ -281,7 +281,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a234f03dce002783748ca401a42bc6472.html b/classnlohmann_1_1basic__json_a234f03dce002783748ca401a42bc6472.html
index 7ab863b16..54a3b98e5 100644
--- a/classnlohmann_1_1basic__json_a234f03dce002783748ca401a42bc6472.html
+++ b/classnlohmann_1_1basic__json_a234f03dce002783748ca401a42bc6472.html
@@ -277,17 +277,18 @@ template<typename PointerType , typename std::enable_if<
18 std::cout << *p1 <<
' ' << *p2 <<
' ' << *p3 <<
' ' << *p4 <<
'\n';
19 std::cout << std::boolalpha << (p5 ==
nullptr) <<
'\n';
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
-PointerType get_ptr() noexcept
get a pointer value (implicit)
-NumberIntegerType number_integer_t
a type for a number (integer)
-NumberFloatType number_float_t
a type for a number (floating-point)
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
+PointerType get_ptr() noexcept
get a pointer value (implicit)
+NumberIntegerType number_integer_t
a type for a number (integer)
+NumberFloatType number_float_t
a type for a number (floating-point)
Output (play with this example online): 17 17 17 17
true
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get_ptr.cpp -o get_ptr
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get_ptr.cpp -o get_ptr
+- Since
- version 1.0
-Definition at line 2470 of file json.hpp.
+Definition at line 2509 of file json.hpp.
@@ -297,7 +298,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a2448b2777e8a3e48614e1b3c41b96f7c.html b/classnlohmann_1_1basic__json_a2448b2777e8a3e48614e1b3c41b96f7c.html
index 7b8cd5717..c0b2d0d56 100644
--- a/classnlohmann_1_1basic__json_a2448b2777e8a3e48614e1b3c41b96f7c.html
+++ b/classnlohmann_1_1basic__json_a2448b2777e8a3e48614e1b3c41b96f7c.html
@@ -272,8 +272,8 @@ template<template< typename U, typename V, typename...Args > class Obje
11 std::cout << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): "The quick brown fox jumps over the lazy doc"
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__string_t_value_type.cpp -o basic_json__string_t_value_type
- See also
- basic_json(const string_t&) – create a string value
@@ -281,7 +281,7 @@ template<template< typename U, typename V, typename...Args > class Obje
basic_json(const CompatibleStringType&) – create a string value from a compatible string container
- Since
- version 1.0
-Definition at line 1059 of file json.hpp.
+Definition at line 1082 of file json.hpp.
@@ -291,7 +291,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a266c4dd24d11a86e4831523af5d9df4d.html b/classnlohmann_1_1basic__json_a266c4dd24d11a86e4831523af5d9df4d.html
index da6a70c99..4fba0e4ad 100644
--- a/classnlohmann_1_1basic__json_a266c4dd24d11a86e4831523af5d9df4d.html
+++ b/classnlohmann_1_1basic__json_a266c4dd24d11a86e4831523af5d9df4d.html
@@ -296,8 +296,8 @@ This function is required for compatibility reasons with Clang.
29 std::cout << std::setw(4) <<
object <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 2
{
@@ -320,9 +320,10 @@ This function is required for compatibility reasons with Clang.
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__key_type.cpp -o operatorarray__key_type
- See also
- at(const typename object_t::key_type&) for access by reference with range checking
-
-value() for access by value with a default value
+value() for access by value with a default value
+- Since
- version 1.0
-Definition at line 2803 of file json.hpp.
+Definition at line 2830 of file json.hpp.
@@ -332,7 +333,7 @@ This function is required for compatibility reasons with Clang.
diff --git a/classnlohmann_1_1basic__json_a26b7e4876af25eae5800ce43f93aaef2.html b/classnlohmann_1_1basic__json_a26b7e4876af25eae5800ce43f93aaef2.html
index 864d71951..80750fda4 100644
--- a/classnlohmann_1_1basic__json_a26b7e4876af25eae5800ce43f93aaef2.html
+++ b/classnlohmann_1_1basic__json_a26b7e4876af25eae5800ce43f93aaef2.html
@@ -317,16 +317,17 @@ Unlike 27 std::cout << std::boolalpha << v_integer << " " << v_floating
28 <<
" " << v_string <<
" " << v_boolean <<
"\n";
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
Output (play with this example online): 1 42.23 oops false
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__value.cpp -o basic_json__value
- See also
- at(const typename object_t::key_type&) for access by reference with range checking
-
-operator[](const typename object_t::key_type&) for unchecked access by reference
+operator[](const typename object_t::key_type&) for unchecked access by reference
+- Since
- version 1.0
-Definition at line 2872 of file json.hpp.
+Definition at line 2896 of file json.hpp.
@@ -336,7 +337,7 @@ Unlike
diff --git a/classnlohmann_1_1basic__json_a2adfc8d24bea3908398cbf325b5dc1d7.html b/classnlohmann_1_1basic__json_a2adfc8d24bea3908398cbf325b5dc1d7.html
index a7c380e54..563f5f348 100644
--- a/classnlohmann_1_1basic__json_a2adfc8d24bea3908398cbf325b5dc1d7.html
+++ b/classnlohmann_1_1basic__json_a2adfc8d24bea3908398cbf325b5dc1d7.html
@@ -271,14 +271,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
-a template for a reverse iterator class
+a class to store JSON values
+namespace for Niels Lohmann
+const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
+a template for a reverse iterator class
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crbegin.cpp -o crbegin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crbegin.cpp -o crbegin
+- Since
- version 1.0
-Definition at line 3427 of file json.hpp.
+Definition at line 3497 of file json.hpp.
@@ -288,7 +289,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a3287df6546c905fb0a5786deb4b1cf32.html b/classnlohmann_1_1basic__json_a3287df6546c905fb0a5786deb4b1cf32.html
index a81a31bf6..383497b82 100644
--- a/classnlohmann_1_1basic__json_a3287df6546c905fb0a5786deb4b1cf32.html
+++ b/classnlohmann_1_1basic__json_a3287df6546c905fb0a5786deb4b1cf32.html
@@ -298,11 +298,11 @@ template<template< typename U, typename V, typename...Args > class Obje
27 std::cout << j_array_empty.empty() <<
'\n';
28 std::cout << j_string.
empty() <<
'\n';
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
-bool empty() const noexcept
checks whether the container is empty
+bool empty() const noexcept
checks whether the container is empty
Output (play with this example online): true
false
false
@@ -312,9 +312,10 @@ true
false
true
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/empty.cpp -o empty
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/empty.cpp -o empty
+- Since
- version 1.0
-Definition at line 3540 of file json.hpp.
+Definition at line 3618 of file json.hpp.
@@ -324,7 +325,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a33f1632cfdbf460b4913f4e8a43dd9e4.html b/classnlohmann_1_1basic__json_a33f1632cfdbf460b4913f4e8a43dd9e4.html
index 5d90db2bd..e007fd8d7 100644
--- a/classnlohmann_1_1basic__json_a33f1632cfdbf460b4913f4e8a43dd9e4.html
+++ b/classnlohmann_1_1basic__json_a33f1632cfdbf460b4913f4e8a43dd9e4.html
@@ -271,14 +271,14 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << a <<
'\n';
15 std::cout << b <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): null
23
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__moveconstructor.cpp -o basic_json__moveconstructor
- Since
- version 1.0
-Definition at line 1715 of file json.hpp.
+Definition at line 1738 of file json.hpp.
@@ -288,7 +288,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html b/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html
index f1338f0e1..510757113 100644
--- a/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html
+++ b/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html
@@ -284,8 +284,8 @@ template<template< typename U, typename V, typename...Args > class Obje
16 std::cout << std::setw(4) << j_object <<
"\n\n";
17 std::cout << std::setw(2) << j_array <<
"\n\n";
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {"one":1,"two":2}
[1,2,4,8,16]
@@ -303,9 +303,10 @@ template<template< typename U, typename V, typename...Args > class Obje
16
]
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_serialize.cpp -o operator_serialize
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_serialize.cpp -o operator_serialize
+- Since
- version 1.0
-Definition at line 4537 of file json.hpp.
+Definition at line 4665 of file json.hpp.
@@ -315,7 +316,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a429c2606865483ff357cccc1b1c46569.html b/classnlohmann_1_1basic__json_a429c2606865483ff357cccc1b1c46569.html
index f03b952ad..c345ded32 100644
--- a/classnlohmann_1_1basic__json_a429c2606865483ff357cccc1b1c46569.html
+++ b/classnlohmann_1_1basic__json_a429c2606865483ff357cccc1b1c46569.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << array <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): [1,2,3,4,5]
null
[1,2,3,4,5,6,7]
["first","second"]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+- Since
- version 1.0
-Definition at line 3770 of file json.hpp.
+Definition at line 3858 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a42f9133f978dde4cce5851b2c2434a0c.html b/classnlohmann_1_1basic__json_a42f9133f978dde4cce5851b2c2434a0c.html
index f0e9eb4ab..77d0e95e8 100644
--- a/classnlohmann_1_1basic__json_a42f9133f978dde4cce5851b2c2434a0c.html
+++ b/classnlohmann_1_1basic__json_a42f9133f978dde4cce5851b2c2434a0c.html
@@ -273,10 +273,10 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-value_t type() const noexcept
return the type of the JSON value (explicit)
-namespace for Niels Lohmann
+value_t type() const noexcept
return the type of the JSON value (explicit)
+namespace for Niels Lohmann
array (ordered collection of values)
@@ -290,9 +290,10 @@ true
true
true
true
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/type.cpp -o type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/type.cpp -o type
+- Since
- version 1.0
-Definition at line 1864 of file json.hpp.
+Definition at line 1894 of file json.hpp.
@@ -302,7 +303,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a4361aa791f3980abb239e4155a3450cb.html b/classnlohmann_1_1basic__json_a4361aa791f3980abb239e4155a3450cb.html
index 9899493ee..b88d25a91 100644
--- a/classnlohmann_1_1basic__json_a4361aa791f3980abb239e4155a3450cb.html
+++ b/classnlohmann_1_1basic__json_a4361aa791f3980abb239e4155a3450cb.html
@@ -272,14 +272,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-const_iterator cbegin() const
returns a const iterator to the first element
-namespace for Niels Lohmann
-a const random access iterator for the basic_json class
+a class to store JSON values
+const_iterator cbegin() const
returns a const iterator to the first element
+namespace for Niels Lohmann
+a const random access iterator for the basic_json class
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cbegin.cpp -o cbegin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cbegin.cpp -o cbegin
+- Since
- version 1.0
-Definition at line 3320 of file json.hpp.
+Definition at line 3382 of file json.hpp.
@@ -289,7 +290,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a4943b7f16ddc4e0df33c0cae7ef14471.html b/classnlohmann_1_1basic__json_a4943b7f16ddc4e0df33c0cae7ef14471.html
index 8bdf2a1b5..5abe1b7fd 100644
--- a/classnlohmann_1_1basic__json_a4943b7f16ddc4e0df33c0cae7ef14471.html
+++ b/classnlohmann_1_1basic__json_a4943b7f16ddc4e0df33c0cae7ef14471.html
@@ -274,14 +274,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
-a template for a reverse iterator class
+a class to store JSON values
+namespace for Niels Lohmann
+const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
+a template for a reverse iterator class
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crend.cpp -o crend
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crend.cpp -o crend
+- Since
- version 1.0
-Definition at line 3498 of file json.hpp.
+Definition at line 3574 of file json.hpp.
@@ -291,7 +292,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a4ad3f27ecece8f644e8dca69a97eb67f.html b/classnlohmann_1_1basic__json_a4ad3f27ecece8f644e8dca69a97eb67f.html
index a9ee78264..9af6a5727 100644
--- a/classnlohmann_1_1basic__json_a4ad3f27ecece8f644e8dca69a97eb67f.html
+++ b/classnlohmann_1_1basic__json_a4ad3f27ecece8f644e8dca69a97eb67f.html
@@ -274,14 +274,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
-a template for a reverse iterator class
+a class to store JSON values
+namespace for Niels Lohmann
+const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
+a template for a reverse iterator class
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crend.cpp -o crend
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crend.cpp -o crend
+- Since
- version 1.0
-Definition at line 3456 of file json.hpp.
+Definition at line 3528 of file json.hpp.
@@ -291,7 +292,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a4bf695ddf4a00ea8feea2c725ec847f1.html b/classnlohmann_1_1basic__json_a4bf695ddf4a00ea8feea2c725ec847f1.html
index d0b8e2615..67fb48a03 100644
--- a/classnlohmann_1_1basic__json_a4bf695ddf4a00ea8feea2c725ec847f1.html
+++ b/classnlohmann_1_1basic__json_a4bf695ddf4a00ea8feea2c725ec847f1.html
@@ -279,15 +279,16 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout <<
"value = " << value <<
'\n';
18 std::cout <<
"object = " <<
object <<
'\n';
-a class to store JSON values
-ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
-namespace for Niels Lohmann
-void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
+a class to store JSON values
+ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
+namespace for Niels Lohmann
+void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
Output (play with this example online): value = {"translation":{"cow":"Kuh","dog":"Hund"}}
object = {"one":"eins","two":"zwei"}
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__object_t.cpp -o swap__object_t
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__object_t.cpp -o swap__object_t
+- Since
- version 1.0
-Definition at line 4139 of file json.hpp.
+Definition at line 4245 of file json.hpp.
@@ -297,7 +298,7 @@ object = {"one":"eins","two":"zwei"}
diff --git a/classnlohmann_1_1basic__json_a4d688b5ff534d3ab4e284b3191061529.html b/classnlohmann_1_1basic__json_a4d688b5ff534d3ab4e284b3191061529.html
index 0692039cb..cdc05c795 100644
--- a/classnlohmann_1_1basic__json_a4d688b5ff534d3ab4e284b3191061529.html
+++ b/classnlohmann_1_1basic__json_a4d688b5ff534d3ab4e284b3191061529.html
@@ -271,14 +271,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
-a template for a reverse iterator class
+a class to store JSON values
+namespace for Niels Lohmann
+const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
+a template for a reverse iterator class
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crbegin.cpp -o crbegin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/crbegin.cpp -o crbegin
+- Since
- version 1.0
-Definition at line 3477 of file json.hpp.
+Definition at line 3551 of file json.hpp.
@@ -288,7 +289,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a53a2abfdd4f72c7df5aba1155bf03e48.html b/classnlohmann_1_1basic__json_a53a2abfdd4f72c7df5aba1155bf03e48.html
index 71373180d..6e166fe50 100644
--- a/classnlohmann_1_1basic__json_a53a2abfdd4f72c7df5aba1155bf03e48.html
+++ b/classnlohmann_1_1basic__json_a53a2abfdd4f72c7df5aba1155bf03e48.html
@@ -274,9 +274,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-bool is_discarded() const noexcept
return whether value is discarded
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_discarded() const noexcept
return whether value is discarded
+namespace for Niels Lohmann
Output (play with this example online): false
false
false
@@ -284,9 +284,10 @@ false
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_discarded.cpp -o is_discarded
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_discarded.cpp -o is_discarded
+- Since
- version 1.0
-Definition at line 2062 of file json.hpp.
+Definition at line 2124 of file json.hpp.
@@ -296,7 +297,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a55edaf09e1f7785463475f809d987cee.html b/classnlohmann_1_1basic__json_a55edaf09e1f7785463475f809d987cee.html
index 0f72b36a4..95d0e909f 100644
--- a/classnlohmann_1_1basic__json_a55edaf09e1f7785463475f809d987cee.html
+++ b/classnlohmann_1_1basic__json_a55edaf09e1f7785463475f809d987cee.html
@@ -296,15 +296,16 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << *new_pos <<
'\n';
15 std::cout << v <<
'\n';
-a class to store JSON values
-iterator begin()
returns an iterator to the first element
-namespace for Niels Lohmann
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
+a class to store JSON values
+iterator begin()
returns an iterator to the first element
+namespace for Niels Lohmann
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
Output (play with this example online): 7
[1,2,7,7,7,7,7,7,7,3,4]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__count.cpp -o insert__count
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__count.cpp -o insert__count
+- Since
- version 1.0
-Definition at line 3950 of file json.hpp.
+Definition at line 4044 of file json.hpp.
@@ -314,7 +315,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a57703688bee6b9736ab3a430d8d246f2.html b/classnlohmann_1_1basic__json_a57703688bee6b9736ab3a430d8d246f2.html
index d63042958..36c7d870d 100644
--- a/classnlohmann_1_1basic__json_a57703688bee6b9736ab3a430d8d246f2.html
+++ b/classnlohmann_1_1basic__json_a57703688bee6b9736ab3a430d8d246f2.html
@@ -286,14 +286,15 @@ template<template< typename U, typename V, typename...Args > class Obje
23 std::cout << array <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 4
[1,2,3,4,6]
[1,2,3,4,6,null,null,null,null,null,11]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__size_type.cpp -o operatorarray__size_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__size_type.cpp -o operatorarray__size_type
+- Since
- version 1.0
-Definition at line 2678 of file json.hpp.
+Definition at line 2709 of file json.hpp.
@@ -303,7 +304,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a57a96ab3ff1ce7b48a754129fb12c982.html b/classnlohmann_1_1basic__json_a57a96ab3ff1ce7b48a754129fb12c982.html
index eb60d2d91..7d2bc1e31 100644
--- a/classnlohmann_1_1basic__json_a57a96ab3ff1ce7b48a754129fb12c982.html
+++ b/classnlohmann_1_1basic__json_a57a96ab3ff1ce7b48a754129fb12c982.html
@@ -279,15 +279,16 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout <<
"value = " << value <<
'\n';
18 std::cout <<
"string = " <<
string <<
'\n';
-StringType string_t
a type for a string
-a class to store JSON values
-namespace for Niels Lohmann
-void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
+StringType string_t
a type for a string
+a class to store JSON values
+namespace for Niels Lohmann
+void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
Output (play with this example online): value = ["the good","the fast","the ugly"]
string = the bad
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__string_t.cpp -o swap__string_t
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__string_t.cpp -o swap__string_t
+- Since
- version 1.0
-Definition at line 4169 of file json.hpp.
+Definition at line 4277 of file json.hpp.
@@ -297,7 +298,7 @@ string = the bad
diff --git a/classnlohmann_1_1basic__json_a5a2d4dbcdbc8ea065b87daf52cd786b9.html b/classnlohmann_1_1basic__json_a5a2d4dbcdbc8ea065b87daf52cd786b9.html
index 3a1053a05..475e8c53c 100644
--- a/classnlohmann_1_1basic__json_a5a2d4dbcdbc8ea065b87daf52cd786b9.html
+++ b/classnlohmann_1_1basic__json_a5a2d4dbcdbc8ea065b87daf52cd786b9.html
@@ -264,8 +264,8 @@ template<template< typename U, typename V, typename...Args > class Obje
11 std::cout << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): null
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json.cpp -o basic_json
- See also
- basic_json(std::nullptr_t) – create a
null value
@@ -279,7 +279,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a5c8bb5200f5eac10d31e26be46e5b1ac.html b/classnlohmann_1_1basic__json_a5c8bb5200f5eac10d31e26be46e5b1ac.html
index e794312b6..8cbf4c74d 100644
--- a/classnlohmann_1_1basic__json_a5c8bb5200f5eac10d31e26be46e5b1ac.html
+++ b/classnlohmann_1_1basic__json_a5c8bb5200f5eac10d31e26be46e5b1ac.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" == " << number_2 <<
" " << (number_1 > number_2) <<
'\n';
22 std::cout << string_1 <<
" == " << string_2 <<
" " << (string_1 > string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] == [1,2,4] false
{"A":"a","B":"b"} == {"A":"a","B":"b"} false
17 == 17.0000000000001 false
"foo" == "bar" true
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__greater.cpp -o operator__greater
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__greater.cpp -o operator__greater
+- Since
- version 1.0
-Definition at line 4444 of file json.hpp.
+Definition at line 4566 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a5d428360d75a52f6af74751d1cc912c6.html b/classnlohmann_1_1basic__json_a5d428360d75a52f6af74751d1cc912c6.html
index c3dc53332..c45c7dc6d 100644
--- a/classnlohmann_1_1basic__json_a5d428360d75a52f6af74751d1cc912c6.html
+++ b/classnlohmann_1_1basic__json_a5d428360d75a52f6af74751d1cc912c6.html
@@ -282,11 +282,11 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
-value_t
the JSON type enumeration
+value_t
the JSON type enumeration
array (ordered collection of values)
number value (floating-point)
@@ -299,9 +299,10 @@ true
true
true
true
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__value_t.cpp -o operator__value_t
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__value_t.cpp -o operator__value_t
+- Since
- version 1.0
-Definition at line 2080 of file json.hpp.
+Definition at line 2144 of file json.hpp.
@@ -311,7 +312,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html b/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html
index e4e289599..60d9dde26 100644
--- a/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html
+++ b/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html
@@ -284,8 +284,8 @@ template<template< typename U, typename V, typename...Args > class Obje
16 std::cout << std::setw(4) << j_object <<
"\n\n";
17 std::cout << std::setw(2) << j_array <<
"\n\n";
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {"one":1,"two":2}
[1,2,4,8,16]
@@ -303,9 +303,10 @@ template<template< typename U, typename V, typename...Args > class Obje
16
]
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_serialize.cpp -o operator_serialize
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_serialize.cpp -o operator_serialize
+- Since
- version 1.0
-Definition at line 4519 of file json.hpp.
+Definition at line 4647 of file json.hpp.
@@ -315,7 +316,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a5f0aad50ed7e8aec3128fe018c18b3fe.html b/classnlohmann_1_1basic__json_a5f0aad50ed7e8aec3128fe018c18b3fe.html
index b8c3ee614..3e9391b28 100644
--- a/classnlohmann_1_1basic__json_a5f0aad50ed7e8aec3128fe018c18b3fe.html
+++ b/classnlohmann_1_1basic__json_a5f0aad50ed7e8aec3128fe018c18b3fe.html
@@ -311,9 +311,9 @@ template<typename ValueType , typename std::enable_if<
47 std::cout << i.first <<
": " << i.second <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-ValueType get() const
get a value (explicit)
+a class to store JSON values
+namespace for Niels Lohmann
+ValueType get() const
get a value (explicit)
Output (play with this example online): 1
42 42
17.23 17
@@ -328,9 +328,10 @@ array: [1,2,3,4,5]
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get__ValueType_const.cpp -o get__ValueType_const
- See also
- operator ValueType() const for implicit conversion
-
-get() for pointer-member access
+get() for pointer-member access
+- Since
- version 1.0
-Definition at line 2374 of file json.hpp.
+Definition at line 2410 of file json.hpp.
@@ -340,7 +341,7 @@ array: [1,2,3,4,5]
diff --git a/classnlohmann_1_1basic__json_a5fd8b54389698edf0c08e2dd001f610b.html b/classnlohmann_1_1basic__json_a5fd8b54389698edf0c08e2dd001f610b.html
index 45377202a..7d3308a15 100644
--- a/classnlohmann_1_1basic__json_a5fd8b54389698edf0c08e2dd001f610b.html
+++ b/classnlohmann_1_1basic__json_a5fd8b54389698edf0c08e2dd001f610b.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html b/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html
index 6c4c12fa9..a97e80e88 100644
--- a/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html
+++ b/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html
@@ -295,8 +295,8 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << std::setw(2) << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {
"array": [
1,
@@ -311,9 +311,10 @@ template<template< typename U, typename V, typename...Args > class Obje
"string": "Hello, world!"
}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_deserialize.cpp -o operator_deserialize
-- See also
- parse(std::istream&, parser_callback_t) for a variant with a parser callback function to filter values while parsing
+- See also
- parse(std::istream&, parser_callback_t) for a variant with a parser callback function to filter values while parsing
+- Since
- version 1.0
-Definition at line 4632 of file json.hpp.
+Definition at line 4769 of file json.hpp.
@@ -323,7 +324,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a63691315292df8e1522b00d37ebb1ffc.html b/classnlohmann_1_1basic__json_a63691315292df8e1522b00d37ebb1ffc.html
index 27008c736..050dc3a3b 100644
--- a/classnlohmann_1_1basic__json_a63691315292df8e1522b00d37ebb1ffc.html
+++ b/classnlohmann_1_1basic__json_a63691315292df8e1522b00d37ebb1ffc.html
@@ -237,7 +237,15 @@ template<template< typename U, typename V, typename...Args > class Obje
RFC 7159 describes JSON objects as follows:
An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.
-To store objects in C++, a type is defined by the template parameters ObjectType which chooses the container (e.g., std::map or std::unordered_map), StringType which chooses the type of the keys or names, and AllocatorType which chooses the allocator to use.
+To store objects in C++, a type is defined by the template parameters described below.
+- Template Parameters
-
+
+ | ObjectType | the container to store objects (e.g., std::map or std::unordered_map) |
+ | StringType | the type of the keys or names (e.g., std::string). The comparison function std::less<StringType> is used to order elements inside the container. |
+ | AllocatorType | the allocator to use for objects (e.g., std::allocator) |
+
+
+
Default type
With the default values for ObjectType (std::map), StringType (std::string), and AllocatorType (std::allocator), the default value for object_t is:
std::map<
@@ -264,7 +272,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- See also
- array_t – type for an array value
- Since
- version 1.0
-
Definition at line 328 of file json.hpp.
+
Definition at line 340 of file json.hpp.
@@ -274,7 +282,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a652414dd930cb3af3b6f454cc535a23e.html b/classnlohmann_1_1basic__json_a652414dd930cb3af3b6f454cc535a23e.html
index 6e9fff444..6d90bfd30 100644
--- a/classnlohmann_1_1basic__json_a652414dd930cb3af3b6f454cc535a23e.html
+++ b/classnlohmann_1_1basic__json_a652414dd930cb3af3b6f454cc535a23e.html
@@ -295,18 +295,19 @@ template<template< typename U, typename V, typename...Args > class Obje
31 std::cout <<
"out of range" <<
'\n';
-a class to store JSON values
-reference at(size_type idx)
access specified array element with bounds checking
-namespace for Niels Lohmann
+a class to store JSON values
+reference at(size_type idx)
access specified array element with bounds checking
+namespace for Niels Lohmann
Output (play with this example online): "il brutto"
{"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"}
out of range
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__object_t_key_type.cpp -o at__object_t_key_type
- See also
- operator[](const typename object_t::key_type&) for unchecked access by reference
-
-value() for access by value with a default value
+value() for access by value with a default value
+- Since
- version 1.0
-Definition at line 2607 of file json.hpp.
+Definition at line 2644 of file json.hpp.
@@ -316,7 +317,7 @@ out of range
diff --git a/classnlohmann_1_1basic__json_a656939a3dc9a6047e4afacd9e11b83a6.html b/classnlohmann_1_1basic__json_a656939a3dc9a6047e4afacd9e11b83a6.html
index f574691f7..6acaff789 100644
--- a/classnlohmann_1_1basic__json_a656939a3dc9a6047e4afacd9e11b83a6.html
+++ b/classnlohmann_1_1basic__json_a656939a3dc9a6047e4afacd9e11b83a6.html
@@ -277,17 +277,18 @@ template<typename PointerType , typename std::enable_if<
18 std::cout << *p1 <<
' ' << *p2 <<
' ' << *p3 <<
' ' << *p4 <<
'\n';
19 std::cout << std::boolalpha << (p5 ==
nullptr) <<
'\n';
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
-PointerType get_ptr() noexcept
get a pointer value (implicit)
-NumberIntegerType number_integer_t
a type for a number (integer)
-NumberFloatType number_float_t
a type for a number (floating-point)
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
+PointerType get_ptr() noexcept
get a pointer value (implicit)
+NumberIntegerType number_integer_t
a type for a number (integer)
+NumberFloatType number_float_t
a type for a number (floating-point)
Output (play with this example online): 17 17 17 17
true
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get_ptr.cpp -o get_ptr
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get_ptr.cpp -o get_ptr
+- Since
- version 1.0
-Definition at line 2455 of file json.hpp.
+Definition at line 2494 of file json.hpp.
@@ -297,7 +298,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a6944904b3b59769b1cf62ac2532cbe33.html b/classnlohmann_1_1basic__json_a6944904b3b59769b1cf62ac2532cbe33.html
index 32ab97fd1..feb444f98 100644
--- a/classnlohmann_1_1basic__json_a6944904b3b59769b1cf62ac2532cbe33.html
+++ b/classnlohmann_1_1basic__json_a6944904b3b59769b1cf62ac2532cbe33.html
@@ -261,7 +261,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- See also
- number_float_t – type for number values (floating-point)
- Since
- version 1.0
-Definition at line 511 of file json.hpp.
+Definition at line 527 of file json.hpp.
@@ -271,7 +271,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a696ced74d8edc0b63a000a72907ab109.html b/classnlohmann_1_1basic__json_a696ced74d8edc0b63a000a72907ab109.html
index 695899a7c..9db6ceafc 100644
--- a/classnlohmann_1_1basic__json_a696ced74d8edc0b63a000a72907ab109.html
+++ b/classnlohmann_1_1basic__json_a696ced74d8edc0b63a000a72907ab109.html
@@ -246,7 +246,7 @@ template<template< typename U, typename V, typename...Args > class Obje
This function returns true iff the JSON value is a number. This includes both integer and floating-point values.
-
- Returns
true if type is number, false otherwise.
+
- Returns
true if type is number (regardless whether integer or floating-type), false otherwise.
- Complexity
- Constant.
- Example
- The following code exemplifies is_number for all JSON types.
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
24 std::cout << j_string.
is_number() <<
'\n';
-
a class to store JSON values
-
namespace for Niels Lohmann
-
bool is_number() const noexcept
return whether value is a number
+
a class to store JSON values
+
namespace for Niels Lohmann
+
bool is_number() const noexcept
return whether value is a number
Output (play with this example online): false
false
true
@@ -283,9 +283,13 @@ true
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_number.cpp -o is_number
+ The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/is_number.cpp -o is_number
+
- See also
- is_number_integer() – check if value is an integer number
+-
+is_number_float() – check if value is a floating-point number
+
- Since
- version 1.0
-
Definition at line 1953 of file json.hpp.
+
Definition at line 1997 of file json.hpp.
@@ -295,7 +299,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a6a67c72ba65322bfcb28d170617dcdff.html b/classnlohmann_1_1basic__json_a6a67c72ba65322bfcb28d170617dcdff.html
index 1120e09a2..123e21053 100644
--- a/classnlohmann_1_1basic__json_a6a67c72ba65322bfcb28d170617dcdff.html
+++ b/classnlohmann_1_1basic__json_a6a67c72ba65322bfcb28d170617dcdff.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << array <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): [1,2,3,4,5]
null
[1,2,3,4,5,6,7]
["first","second"]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+- Since
- version 1.0
-Definition at line 3795 of file json.hpp.
+Definition at line 3883 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a6a7f45095675ac6fd1d018a0e41874be.html b/classnlohmann_1_1basic__json_a6a7f45095675ac6fd1d018a0e41874be.html
index 0f84f1335..fadb74e61 100644
--- a/classnlohmann_1_1basic__json_a6a7f45095675ac6fd1d018a0e41874be.html
+++ b/classnlohmann_1_1basic__json_a6a7f45095675ac6fd1d018a0e41874be.html
@@ -307,18 +307,18 @@ template<class InputIT , typename std::enable_if<
19 std::cout << j_number_range <<
'\n';
20 std::cout << j_object_range <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-iterator begin()
returns an iterator to the first element
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-namespace for Niels Lohmann
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+iterator begin()
returns an iterator to the first element
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+namespace for Niels Lohmann
Output (play with this example online): ["bravo","charly"]
42
{"one":"eins"}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__InputIt_InputIt.cpp -o basic_json__InputIt_InputIt
- Since
- version 1.0
-Definition at line 1551 of file json.hpp.
+Definition at line 1574 of file json.hpp.
@@ -328,7 +328,7 @@ template<class InputIT , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_a6bbd3e72a870f1ba81ff6886b063b0fe.html b/classnlohmann_1_1basic__json_a6bbd3e72a870f1ba81ff6886b063b0fe.html
index cb9c538cc..6a1075181 100644
--- a/classnlohmann_1_1basic__json_a6bbd3e72a870f1ba81ff6886b063b0fe.html
+++ b/classnlohmann_1_1basic__json_a6bbd3e72a870f1ba81ff6886b063b0fe.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a6dff6a02a2be250b8f8dc2f47be65544.html b/classnlohmann_1_1basic__json_a6dff6a02a2be250b8f8dc2f47be65544.html
index 454bc3258..b9f559b14 100644
--- a/classnlohmann_1_1basic__json_a6dff6a02a2be250b8f8dc2f47be65544.html
+++ b/classnlohmann_1_1basic__json_a6dff6a02a2be250b8f8dc2f47be65544.html
@@ -276,13 +276,19 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j_array <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-InteratorType erase(InteratorType pos)
remove element given an iterator
+a class to store JSON values
+namespace for Niels Lohmann
+InteratorType erase(InteratorType pos)
remove element given an iterator
Output (play with this example online): [0,1,3,4,5]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__size_type.cpp -o erase__size_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__size_type.cpp -o erase__size_type
+- See also
- erase(InteratorType) – removes the element at a given position
+-
+erase(InteratorType, InteratorType) – removes the elements in the given range
+-
+erase(const typename object_t::key_type&) – remvoes the element from an object at the given key
+- Since
- version 1.0
-Definition at line 3201 of file json.hpp.
+Definition at line 3257 of file json.hpp.
@@ -292,7 +298,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a6e2e21da48f5d9471716cd868a068327.html b/classnlohmann_1_1basic__json_a6e2e21da48f5d9471716cd868a068327.html
index 2e458d22e..a6d4a2ebc 100644
--- a/classnlohmann_1_1basic__json_a6e2e21da48f5d9471716cd868a068327.html
+++ b/classnlohmann_1_1basic__json_a6e2e21da48f5d9471716cd868a068327.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" == " << number_2 <<
" " << (number_1 != number_2) <<
'\n';
22 std::cout << string_1 <<
" == " << string_2 <<
" " << (string_1 != string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] == [1,2,4] true
{"A":"a","B":"b"} == {"A":"a","B":"b"} false
17 == 17 false
"foo" == "bar" true
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__notequal.cpp -o operator__notequal
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__notequal.cpp -o operator__notequal
+- Since
- version 1.0
-Definition at line 4328 of file json.hpp.
+Definition at line 4444 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a71eba33d906745e66f340952b79fbce3.html b/classnlohmann_1_1basic__json_a71eba33d906745e66f340952b79fbce3.html
index bd8117b8b..9b0ca570d 100644
--- a/classnlohmann_1_1basic__json_a71eba33d906745e66f340952b79fbce3.html
+++ b/classnlohmann_1_1basic__json_a71eba33d906745e66f340952b79fbce3.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a72442ccbb378b4464a24a2da1e784041.html b/classnlohmann_1_1basic__json_a72442ccbb378b4464a24a2da1e784041.html
index 486c5eda5..15fb327ad 100644
--- a/classnlohmann_1_1basic__json_a72442ccbb378b4464a24a2da1e784041.html
+++ b/classnlohmann_1_1basic__json_a72442ccbb378b4464a24a2da1e784041.html
@@ -256,7 +256,7 @@ template<template< typename U, typename V, typename...Args > class Obje
-
overload for a default value of type const char* Returns either a copy of an object's element at the specified key key or a given default value if no element with key key exists.
+
access specified object element with default value Returns either a copy of an object's element at the specified key key or a given default value if no element with key key exists.
The function is basically equivalent to executing
try {
} catch(std::out_of_range) {
@@ -315,16 +315,17 @@ Unlike
27 std::cout << std::boolalpha << v_integer <<
" " << v_floating
28 <<
" " << v_string <<
" " << v_boolean <<
"\n";
-
a class to store JSON values
-
ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-
namespace for Niels Lohmann
+
a class to store JSON values
+
ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+
namespace for Niels Lohmann
Output (play with this example online): 1 42.23 oops false
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__value.cpp -o basic_json__value
- See also
- at(const typename object_t::key_type&) for access by reference with range checking
-
-operator[](const typename object_t::key_type&) for unchecked access by reference
+operator[](const typename object_t::key_type&) for unchecked access by reference
+- Since
- version 1.0
-Definition at line 2898 of file json.hpp.
+Definition at line 2922 of file json.hpp.
@@ -334,7 +335,7 @@ Unlike
diff --git a/classnlohmann_1_1basic__json_a72ba20783ecb3eec98bd6a3b870d565c.html b/classnlohmann_1_1basic__json_a72ba20783ecb3eec98bd6a3b870d565c.html
index 0490a6933..1e2d3cb86 100644
--- a/classnlohmann_1_1basic__json_a72ba20783ecb3eec98bd6a3b870d565c.html
+++ b/classnlohmann_1_1basic__json_a72ba20783ecb3eec98bd6a3b870d565c.html
@@ -275,14 +275,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-const_iterator cend() const
returns a const iterator to one past the last element
-namespace for Niels Lohmann
-a const random access iterator for the basic_json class
+a class to store JSON values
+const_iterator cend() const
returns a const iterator to one past the last element
+namespace for Niels Lohmann
+a const random access iterator for the basic_json class
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cend.cpp -o cend
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cend.cpp -o cend
+- Since
- version 1.0
-Definition at line 3397 of file json.hpp.
+Definition at line 3465 of file json.hpp.
@@ -292,7 +293,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a749e58042d8069f4f048ee4d23c43f63.html b/classnlohmann_1_1basic__json_a749e58042d8069f4f048ee4d23c43f63.html
index 4ae36e5b4..dded9968e 100644
--- a/classnlohmann_1_1basic__json_a749e58042d8069f4f048ee4d23c43f63.html
+++ b/classnlohmann_1_1basic__json_a749e58042d8069f4f048ee4d23c43f63.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << array <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): [1,2,3,4,5]
null
[1,2,3,4,5,6,7]
["first","second"]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back.cpp -o push_back
+- Since
- version 1.0
-Definition at line 3805 of file json.hpp.
+Definition at line 3893 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a74a943800c7f103d0990d7eef82c6453.html b/classnlohmann_1_1basic__json_a74a943800c7f103d0990d7eef82c6453.html
index 2918633e0..1c24c4a70 100644
--- a/classnlohmann_1_1basic__json_a74a943800c7f103d0990d7eef82c6453.html
+++ b/classnlohmann_1_1basic__json_a74a943800c7f103d0990d7eef82c6453.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" >= " << number_2 <<
" " << (number_1 >= number_2) <<
'\n';
22 std::cout << string_1 <<
" >= " << string_2 <<
" " << (string_1 >= string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] >= [1,2,4] false
{"A":"a","B":"b"} >= {"A":"a","B":"b"} true
17 >= 17.0000000000001 false
"foo" >= "bar" true
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__greaterequal.cpp -o operator__greaterequal
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__greaterequal.cpp -o operator__greaterequal
+- Since
- version 1.0
-Definition at line 4484 of file json.hpp.
+Definition at line 4610 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a74ccfa471a0c061876b247f820f3c741.html b/classnlohmann_1_1basic__json_a74ccfa471a0c061876b247f820f3c741.html
index 709356141..d15d78f9d 100644
--- a/classnlohmann_1_1basic__json_a74ccfa471a0c061876b247f820f3c741.html
+++ b/classnlohmann_1_1basic__json_a74ccfa471a0c061876b247f820f3c741.html
@@ -321,14 +321,14 @@ template<template< typename U, typename V, typename...Args > class Obje
54 std::cout << std::setw(4) << j_filtered <<
'\n';
-basic_json<> json
default JSON class
-a class to store JSON values
-std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
-namespace for Niels Lohmann
-void clear() noexcept
clears the contents
+basic_json<> json
default JSON class
+a class to store JSON values
+std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
+namespace for Niels Lohmann
+void clear() noexcept
clears the contents
the parser read a key of a value in an object
-static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
-parse_event_t
JSON callback events.
+static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
+parse_event_t
JSON callback events.
Output (play with this example online): {
"Image": {
"Animated": false,
@@ -364,9 +364,10 @@ template<template< typename U, typename V, typename...Args > class Obje
}
}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/parse__istream__parser_callback_t.cpp -o parse__istream__parser_callback_t
-- See also
- parse(const string_t&, parser_callback_t) for a version that reads from a string
+- See also
- parse(const string_t&, parser_callback_t) for a version that reads from a string
+- Since
- version 1.0
-Definition at line 4601 of file json.hpp.
+Definition at line 4733 of file json.hpp.
@@ -376,7 +377,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a75a1754e0d39f33095d3102a8bdb9881.html b/classnlohmann_1_1basic__json_a75a1754e0d39f33095d3102a8bdb9881.html
index 0cd8abac2..f930f965e 100644
--- a/classnlohmann_1_1basic__json_a75a1754e0d39f33095d3102a8bdb9881.html
+++ b/classnlohmann_1_1basic__json_a75a1754e0d39f33095d3102a8bdb9881.html
@@ -308,20 +308,26 @@ template<class InteratorType , typename std::enable_if<
28 std::cout << j_array <<
'\n';
29 std::cout << j_string <<
'\n';
-a class to store JSON values
-iterator begin()
returns an iterator to the first element
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-namespace for Niels Lohmann
-InteratorType erase(InteratorType pos)
remove element given an iterator
+a class to store JSON values
+iterator begin()
returns an iterator to the first element
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+namespace for Niels Lohmann
+InteratorType erase(InteratorType pos)
remove element given an iterator
Output (play with this example online): null
null
null
{"one":1}
[1,2,8,16]
null
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__IteratorType.cpp -o erase__IteratorType
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__IteratorType.cpp -o erase__IteratorType
+- See also
- erase(InteratorType, InteratorType) – removes the elements in the given range
+-
+erase(const typename object_t::key_type&) – remvoes the element from an object at the given key
+-
+erase(const size_type) – removes the element from an array at the given index
+- Since
- version 1.0
-Definition at line 3009 of file json.hpp.
+Definition at line 3046 of file json.hpp.
@@ -331,7 +337,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a76cfc5062bf6223396ab82c753cd4634.html b/classnlohmann_1_1basic__json_a76cfc5062bf6223396ab82c753cd4634.html
index 6c5b8c7dc..bf056f406 100644
--- a/classnlohmann_1_1basic__json_a76cfc5062bf6223396ab82c753cd4634.html
+++ b/classnlohmann_1_1basic__json_a76cfc5062bf6223396ab82c753cd4634.html
@@ -248,7 +248,7 @@ template<typename PointerType , typename std::enable_if<
get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made.
-
- Warning
- Writing data to the pointee of the result yields an undefined state.
+
- Warning
- The pointer becomes invalid if the underlying JSON object changes.
- Template Parameters
-
| PointerType | pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_float_t. |
@@ -277,18 +277,19 @@ template<typename PointerType , typename std::enable_if<
18 std::cout << *p1 <<
' ' << *p2 <<
' ' << *p3 <<
' ' << *p4 <<
'\n';
19 std::cout << std::boolalpha << (p5 ==
nullptr) <<
'\n';
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
-ValueType get() const
get a value (explicit)
-NumberIntegerType number_integer_t
a type for a number (integer)
-NumberFloatType number_float_t
a type for a number (floating-point)
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
+ValueType get() const
get a value (explicit)
+NumberIntegerType number_integer_t
a type for a number (integer)
+NumberFloatType number_float_t
a type for a number (floating-point)
Output (play with this example online): 17 17 17 17
true
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get__PointerType.cpp -o get__PointerType
-- See also
- get_ptr() for explicit pointer-member access
+- See also
- get_ptr() for explicit pointer-member access
+- Since
- version 1.0
-Definition at line 2422 of file json.hpp.
+Definition at line 2459 of file json.hpp.
@@ -298,7 +299,7 @@ true
diff --git a/classnlohmann_1_1basic__json_a793e5c1da2fc7de7a04b19eadbb3f2cb.html b/classnlohmann_1_1basic__json_a793e5c1da2fc7de7a04b19eadbb3f2cb.html
index 78cf953b5..5d33b561e 100644
--- a/classnlohmann_1_1basic__json_a793e5c1da2fc7de7a04b19eadbb3f2cb.html
+++ b/classnlohmann_1_1basic__json_a793e5c1da2fc7de7a04b19eadbb3f2cb.html
@@ -300,9 +300,9 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << j_array <<
'\n';
23 std::cout << j_string <<
'\n';
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
@@ -325,10 +325,14 @@ false
-
basic_json(const object_t&) – create a object value
-
-basic_json(const array_t&) – create a array value
+basic_json(const array_t&) – create a array value
+-
+basic_json(const number_float_t) – create a number (floating-point) value
+-
+basic_json(const number_integer_t) – create a number (integer) value
- Since
- version 1.0
-Definition at line 843 of file json.hpp.
+Definition at line 866 of file json.hpp.
@@ -338,7 +342,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a7c08f966200af98db0313a3b517ce0a9.html b/classnlohmann_1_1basic__json_a7c08f966200af98db0313a3b517ce0a9.html
index 3c19f6256..d710f6869 100644
--- a/classnlohmann_1_1basic__json_a7c08f966200af98db0313a3b517ce0a9.html
+++ b/classnlohmann_1_1basic__json_a7c08f966200af98db0313a3b517ce0a9.html
@@ -274,14 +274,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-reverse_iterator rend()
returns an iterator to the reverse-end
-namespace for Niels Lohmann
-a template for a reverse iterator class
+a class to store JSON values
+reverse_iterator rend()
returns an iterator to the reverse-end
+namespace for Niels Lohmann
+a template for a reverse iterator class
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/rend.cpp -o rend
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/rend.cpp -o rend
+- Since
- version 1.0
-Definition at line 3448 of file json.hpp.
+Definition at line 3520 of file json.hpp.
@@ -291,7 +292,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_a7c19a5c3be6cc755377ee41eade78baf.html b/classnlohmann_1_1basic__json_a7c19a5c3be6cc755377ee41eade78baf.html
index 2dace4b8b..a94757965 100644
--- a/classnlohmann_1_1basic__json_a7c19a5c3be6cc755377ee41eade78baf.html
+++ b/classnlohmann_1_1basic__json_a7c19a5c3be6cc755377ee41eade78baf.html
@@ -274,16 +274,17 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout <<
"value at key \"two\": " << *it_two <<
'\n';
18 std::cout <<
"\"three\" was found: " << (it_three != j_object.
end()) <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-namespace for Niels Lohmann
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+namespace for Niels Lohmann
Output (play with this example online): "two" was found: true
value at key "two": 2
"three" was found: false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/find__key_type.cpp -o find__key_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/find__key_type.cpp -o find__key_type
+- Since
- version 1.0
-Definition at line 3250 of file json.hpp.
+Definition at line 3308 of file json.hpp.
@@ -293,7 +294,7 @@ value at key "two": 2
diff --git a/classnlohmann_1_1basic__json_a7d0db3b728d820d4984df78d97d2b104.html b/classnlohmann_1_1basic__json_a7d0db3b728d820d4984df78d97d2b104.html
index 87649bef9..4158a5c94 100644
--- a/classnlohmann_1_1basic__json_a7d0db3b728d820d4984df78d97d2b104.html
+++ b/classnlohmann_1_1basic__json_a7d0db3b728d820d4984df78d97d2b104.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a7d1b990f2c12fecb57db1504fdadd0bb.html b/classnlohmann_1_1basic__json_a7d1b990f2c12fecb57db1504fdadd0bb.html
index c0e02137d..5bb1f481b 100644
--- a/classnlohmann_1_1basic__json_a7d1b990f2c12fecb57db1504fdadd0bb.html
+++ b/classnlohmann_1_1basic__json_a7d1b990f2c12fecb57db1504fdadd0bb.html
@@ -278,14 +278,20 @@ template<template< typename U, typename V, typename...Args > class Obje
15 std::cout << j_object <<
'\n';
16 std::cout << count_one <<
" " << count_three <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-InteratorType erase(InteratorType pos)
remove element given an iterator
+a class to store JSON values
+namespace for Niels Lohmann
+InteratorType erase(InteratorType pos)
remove element given an iterator
Output (play with this example online): {"two":2}
1 0
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__key_type.cpp -o erase__key_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__key_type.cpp -o erase__key_type
+- See also
- erase(InteratorType) – removes the element at a given position
+-
+erase(InteratorType, InteratorType) – removes the elements in the given range
+-
+erase(const size_type) – removes the element from an array at the given index
+- Since
- version 1.0
-Definition at line 3174 of file json.hpp.
+Definition at line 3227 of file json.hpp.
@@ -295,7 +301,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a7dab69b10b98e7bc694339720e37fb2b.html b/classnlohmann_1_1basic__json_a7dab69b10b98e7bc694339720e37fb2b.html
index e25302232..1483b08b8 100644
--- a/classnlohmann_1_1basic__json_a7dab69b10b98e7bc694339720e37fb2b.html
+++ b/classnlohmann_1_1basic__json_a7dab69b10b98e7bc694339720e37fb2b.html
@@ -274,16 +274,17 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout <<
"value at key \"two\": " << *it_two <<
'\n';
18 std::cout <<
"\"three\" was found: " << (it_three != j_object.
end()) <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-namespace for Niels Lohmann
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+namespace for Niels Lohmann
Output (play with this example online): "two" was found: true
value at key "two": 2
"three" was found: false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/find__key_type.cpp -o find__key_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/find__key_type.cpp -o find__key_type
+- Since
- version 1.0
-Definition at line 3234 of file json.hpp.
+Definition at line 3292 of file json.hpp.
@@ -293,7 +294,7 @@ value at key "two": 2
diff --git a/classnlohmann_1_1basic__json_a7f97a91ad8f1d5cf0b9213bd24f247c4.html b/classnlohmann_1_1basic__json_a7f97a91ad8f1d5cf0b9213bd24f247c4.html
index d9784e4e9..534c22899 100644
--- a/classnlohmann_1_1basic__json_a7f97a91ad8f1d5cf0b9213bd24f247c4.html
+++ b/classnlohmann_1_1basic__json_a7f97a91ad8f1d5cf0b9213bd24f247c4.html
@@ -287,15 +287,16 @@ template<template< typename U, typename V, typename...Args > class Obje
19 std::cout <<
string <<
" != nullptr " << (
string !=
nullptr) <<
'\n';
20 std::cout << null <<
" != nullptr " << (null !=
nullptr) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online):
[1,2,3] != nullptr true
{"A":"a","B":"b"} != nullptr true
17 != nullptr true
"foo" != nullptr true
null != nullptr false
- The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__notequal__nullptr_t.cpp -o operator__notequal__nullptr_t
-Definition at line 4358 of file json.hpp.
+ The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__notequal__nullptr_t.cpp -o operator__notequal__nullptr_t
- Since
- version 1.0
+
+Definition at line 4476 of file json.hpp.
@@ -305,7 +306,7 @@ null != nullptr false
diff --git a/classnlohmann_1_1basic__json_a80a89ddbe4cb7ef15b049febee208cc8.html b/classnlohmann_1_1basic__json_a80a89ddbe4cb7ef15b049febee208cc8.html
index 24c63f7dc..8db3b3af4 100644
--- a/classnlohmann_1_1basic__json_a80a89ddbe4cb7ef15b049febee208cc8.html
+++ b/classnlohmann_1_1basic__json_a80a89ddbe4cb7ef15b049febee208cc8.html
@@ -279,9 +279,9 @@ In case the parameter value is not a number, a JSON null value is creat
19 std::cout << j_nan <<
'\n';
20 std::cout << j_infinity <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-NumberFloatType number_float_t
a type for a number (floating-point)
+a class to store JSON values
+namespace for Niels Lohmann
+NumberFloatType number_float_t
a type for a number (floating-point)
Output (play with this example online): 3.14159265358979
null
null
@@ -289,7 +289,7 @@ null
- See also
- basic_json(const CompatibleNumberFloatType) – create a number value (floating-point) from a compatible number type
- Since
- version 1.0
-Definition at line 1235 of file json.hpp.
+Definition at line 1258 of file json.hpp.
@@ -299,7 +299,7 @@ null
diff --git a/classnlohmann_1_1basic__json_a80ceaa3bdd346292273b309e08525c1c.html b/classnlohmann_1_1basic__json_a80ceaa3bdd346292273b309e08525c1c.html
index 0cb570d5e..1a7ecf46f 100644
--- a/classnlohmann_1_1basic__json_a80ceaa3bdd346292273b309e08525c1c.html
+++ b/classnlohmann_1_1basic__json_a80ceaa3bdd346292273b309e08525c1c.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a83cbbfbf5d3ecbad6de8ece0be6b36c4.html b/classnlohmann_1_1basic__json_a83cbbfbf5d3ecbad6de8ece0be6b36c4.html
index 523686f01..7e103b5d7 100644
--- a/classnlohmann_1_1basic__json_a83cbbfbf5d3ecbad6de8ece0be6b36c4.html
+++ b/classnlohmann_1_1basic__json_a83cbbfbf5d3ecbad6de8ece0be6b36c4.html
@@ -283,10 +283,10 @@ template<template< typename U, typename V, typename...Args > class Obje
27 std::cout << j_string.
front() <<
'\n';
-reference front()
access the first element
-a class to store JSON values
+reference front()
access the first element
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
Output (play with this example online): true
17
@@ -294,9 +294,10 @@ template<template< typename U, typename V, typename...Args > class Obje
1
1
"Hello, world"
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/front.cpp -o front
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/front.cpp -o front
+- Since
- version 1.0
-Definition at line 2921 of file json.hpp.
+Definition at line 2947 of file json.hpp.
@@ -306,7 +307,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a87db51b6b936fb2ea293cdbc8702dcb8.html b/classnlohmann_1_1basic__json_a87db51b6b936fb2ea293cdbc8702dcb8.html
index a955683cf..24103010a 100644
--- a/classnlohmann_1_1basic__json_a87db51b6b936fb2ea293cdbc8702dcb8.html
+++ b/classnlohmann_1_1basic__json_a87db51b6b936fb2ea293cdbc8702dcb8.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" <= " << number_2 <<
" " << (number_1 <= number_2) <<
'\n';
22 std::cout << string_1 <<
" <= " << string_2 <<
" " << (string_1 <= string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] <= [1,2,4] true
{"A":"a","B":"b"} <= {"A":"a","B":"b"} true
17 <= 17.0000000000001 true
"foo" <= "bar" false
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__lessequal.cpp -o operator__lessequal
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__lessequal.cpp -o operator__lessequal
+- Since
- version 1.0
-Definition at line 4464 of file json.hpp.
+Definition at line 4588 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a8b526709d395142b68d21abfbfff17c3.html b/classnlohmann_1_1basic__json_a8b526709d395142b68d21abfbfff17c3.html
index 6dad11fae..dc73aa1ea 100644
--- a/classnlohmann_1_1basic__json_a8b526709d395142b68d21abfbfff17c3.html
+++ b/classnlohmann_1_1basic__json_a8b526709d395142b68d21abfbfff17c3.html
@@ -283,10 +283,10 @@ template<template< typename U, typename V, typename...Args > class Obje
27 std::cout << j_string.
front() <<
'\n';
-reference front()
access the first element
-a class to store JSON values
+reference front()
access the first element
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
Output (play with this example online): true
17
@@ -294,9 +294,10 @@ template<template< typename U, typename V, typename...Args > class Obje
1
1
"Hello, world"
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/front.cpp -o front
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/front.cpp -o front
+- Since
- version 1.0
-Definition at line 2929 of file json.hpp.
+Definition at line 2955 of file json.hpp.
@@ -306,7 +307,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a8c40cd9ead4de7c82f28268bdf0ec98a.html b/classnlohmann_1_1basic__json_a8c40cd9ead4de7c82f28268bdf0ec98a.html
index 8df59a6f8..a1fc536e1 100644
--- a/classnlohmann_1_1basic__json_a8c40cd9ead4de7c82f28268bdf0ec98a.html
+++ b/classnlohmann_1_1basic__json_a8c40cd9ead4de7c82f28268bdf0ec98a.html
@@ -297,9 +297,9 @@ template<template< typename U, typename V, typename...Args > class Obje
31 std::cout << j_array <<
'\n';
32 std::cout << j_string <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void clear() noexcept
clears the contents
+a class to store JSON values
+namespace for Niels Lohmann
+void clear() noexcept
clears the contents
Output (play with this example online): null
false
0
@@ -307,9 +307,10 @@ false
{}
[]
""
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/clear.cpp -o clear
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/clear.cpp -o clear
+- Since
- version 1.0
-Definition at line 3706 of file json.hpp.
+Definition at line 3792 of file json.hpp.
@@ -319,7 +320,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a8fa74698f4061e18ec664009f3af1ddf.html b/classnlohmann_1_1basic__json_a8fa74698f4061e18ec664009f3af1ddf.html
index 0ba94ccfd..62c65f0d2 100644
--- a/classnlohmann_1_1basic__json_a8fa74698f4061e18ec664009f3af1ddf.html
+++ b/classnlohmann_1_1basic__json_a8fa74698f4061e18ec664009f3af1ddf.html
@@ -301,16 +301,17 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout << *new_pos <<
'\n';
18 std::cout << v <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-iterator begin()
returns an iterator to the first element
-namespace for Niels Lohmann
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+iterator begin()
returns an iterator to the first element
+namespace for Niels Lohmann
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
Output (play with this example online): "one"
[1,2,3,4,"one","two","three","four"]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__range.cpp -o insert__range
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__range.cpp -o insert__range
+- Since
- version 1.0
-Definition at line 3996 of file json.hpp.
+Definition at line 4092 of file json.hpp.
@@ -320,7 +321,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a930e14150ffa067bcf56d35cb00271e1.html b/classnlohmann_1_1basic__json_a930e14150ffa067bcf56d35cb00271e1.html
index eb8345570..793ad2f6f 100644
--- a/classnlohmann_1_1basic__json_a930e14150ffa067bcf56d35cb00271e1.html
+++ b/classnlohmann_1_1basic__json_a930e14150ffa067bcf56d35cb00271e1.html
@@ -246,7 +246,7 @@ template<template< typename U, typename V, typename...Args > class Obje
-
Create a null JSON value. This is the explicitly version of the null value constructor as it takes a null pointer as parameter. It allows to create null values by explicitly assigning a nullptr to a JSON value. The passed null pointer itself is not read - it is only used to choose the right constructor.
+
Create a null JSON value. This is the explicitly version of the null value constructor as it takes a null pointer as parameter. It allows to create null values by explicitly assigning a nullptr to a JSON value. The passed null pointer itself is not read – it is only used to choose the right constructor.
- Complexity
- Constant.
- Example
- The following code shows the constructor with null pointer parameter.
@@ -260,14 +260,14 @@ template<template< typename U, typename V, typename...Args > class Obje
11 std::cout << j <<
'\n';
-
a class to store JSON values
-
namespace for Niels Lohmann
+
a class to store JSON values
+
namespace for Niels Lohmann
Output (play with this example online): null
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__nullptr_t.cpp -o basic_json__nullptr_t
- See also
- basic_json() – default constructor (implicitly creating a
null value)
- Since
- version 1.0
-
Definition at line 887 of file json.hpp.
+
Definition at line 910 of file json.hpp.
@@ -277,7 +277,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_a951a76ba057b3be948e7ba5c2c01cd5a.html b/classnlohmann_1_1basic__json_a951a76ba057b3be948e7ba5c2c01cd5a.html
index 23532beac..d9e3dfecb 100644
--- a/classnlohmann_1_1basic__json_a951a76ba057b3be948e7ba5c2c01cd5a.html
+++ b/classnlohmann_1_1basic__json_a951a76ba057b3be948e7ba5c2c01cd5a.html
@@ -309,8 +309,8 @@ template<class CompatibleObjectType , typename std::enable_if<
39 std::cout << j_mmap <<
'\n';
40 std::cout << j_ummap <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {"one":1,"three":3,"two":2}
{"one":1.2,"three":3.4,"two":2.3}
{"one":true,"three":false,"two":true}
@@ -319,7 +319,7 @@ template<class CompatibleObjectType , typename std::enable_if<
- See also
- basic_json(const object_t&) – create an object value
- Since
- version 1.0
-Definition at line 942 of file json.hpp.
+Definition at line 965 of file json.hpp.
@@ -329,7 +329,7 @@ template<class CompatibleObjectType , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_a9730b9f7bc2150e641fe20198d4477c7.html b/classnlohmann_1_1basic__json_a9730b9f7bc2150e641fe20198d4477c7.html
index aea69e14f..51a92883a 100644
--- a/classnlohmann_1_1basic__json_a9730b9f7bc2150e641fe20198d4477c7.html
+++ b/classnlohmann_1_1basic__json_a9730b9f7bc2150e641fe20198d4477c7.html
@@ -287,15 +287,16 @@ template<template< typename U, typename V, typename...Args > class Obje
19 std::cout <<
string <<
" == nullptr " << (
string ==
nullptr) <<
'\n';
20 std::cout << null <<
" == nullptr " << (null ==
nullptr) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online):
[1,2,3] == nullptr false
{"A":"a","B":"b"} == nullptr false
17 == nullptr false
"foo" == nullptr false
null == nullptr true
- The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__equal__nullptr_t.cpp -o operator__equal__nullptr_t
-Definition at line 4300 of file json.hpp.
+ The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__equal__nullptr_t.cpp -o operator__equal__nullptr_t
- Since
- version 1.0
+
+Definition at line 4414 of file json.hpp.
@@ -305,7 +306,7 @@ null == nullptr true
diff --git a/classnlohmann_1_1basic__json_a98e05a2c9b8f74bd60442772cddeee52.html b/classnlohmann_1_1basic__json_a98e05a2c9b8f74bd60442772cddeee52.html
index a5ed060a6..6368c4ef5 100644
--- a/classnlohmann_1_1basic__json_a98e05a2c9b8f74bd60442772cddeee52.html
+++ b/classnlohmann_1_1basic__json_a98e05a2c9b8f74bd60442772cddeee52.html
@@ -287,15 +287,16 @@ template<template< typename U, typename V, typename...Args > class Obje
19 std::cout <<
string <<
" == nullptr " << (
string ==
nullptr) <<
'\n';
20 std::cout << null <<
" == nullptr " << (null ==
nullptr) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online):
[1,2,3] == nullptr false
{"A":"a","B":"b"} == nullptr false
17 == nullptr false
"foo" == nullptr false
null == nullptr true
- The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__equal__nullptr_t.cpp -o operator__equal__nullptr_t
-Definition at line 4309 of file json.hpp.
+ The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__equal__nullptr_t.cpp -o operator__equal__nullptr_t
- Since
- version 1.0
+
+Definition at line 4423 of file json.hpp.
@@ -305,7 +306,7 @@ null == nullptr true
diff --git a/classnlohmann_1_1basic__json_a9993148cb0473365e52998c7315f9ada.html b/classnlohmann_1_1basic__json_a9993148cb0473365e52998c7315f9ada.html
index 3fb2b7e57..f360bcccf 100644
--- a/classnlohmann_1_1basic__json_a9993148cb0473365e52998c7315f9ada.html
+++ b/classnlohmann_1_1basic__json_a9993148cb0473365e52998c7315f9ada.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-bool is_number_integer() const noexcept
return whether value is an integer number
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_number_integer() const noexcept
return whether value is an integer number
+namespace for Niels Lohmann
Output (play with this example online): false
false
true
@@ -283,9 +283,13 @@ false
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_number_integer.cpp -o is_number_integer
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_number_integer.cpp -o is_number_integer
+- See also
- is_number() – check if value is a number
+-
+is_number_float() – check if value is a floating-point number
+- Since
- version 1.0
-Definition at line 1971 of file json.hpp.
+Definition at line 2020 of file json.hpp.
@@ -295,7 +299,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a9c26c5d0f4a519c7236149b9aeb3ef9e.html b/classnlohmann_1_1basic__json_a9c26c5d0f4a519c7236149b9aeb3ef9e.html
index 3d35fdc17..1026e6c79 100644
--- a/classnlohmann_1_1basic__json_a9c26c5d0f4a519c7236149b9aeb3ef9e.html
+++ b/classnlohmann_1_1basic__json_a9c26c5d0f4a519c7236149b9aeb3ef9e.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-namespace for Niels Lohmann
-bool is_number_float() const noexcept
return whether value is a floating-point number
+a class to store JSON values
+namespace for Niels Lohmann
+bool is_number_float() const noexcept
return whether value is a floating-point number
Output (play with this example online): false
false
false
@@ -283,9 +283,13 @@ true
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_number_float.cpp -o is_number_float
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_number_float.cpp -o is_number_float
+- See also
- is_number() – check if value is number
+-
+is_number_integer() – check if value is an integer number
+- Since
- version 1.0
-Definition at line 1989 of file json.hpp.
+Definition at line 2043 of file json.hpp.
@@ -295,7 +299,7 @@ false
diff --git a/classnlohmann_1_1basic__json_a9f17a0690155e3a5603246ccec81499e.html b/classnlohmann_1_1basic__json_a9f17a0690155e3a5603246ccec81499e.html
index 851d67584..34aae04d5 100644
--- a/classnlohmann_1_1basic__json_a9f17a0690155e3a5603246ccec81499e.html
+++ b/classnlohmann_1_1basic__json_a9f17a0690155e3a5603246ccec81499e.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-namespace for Niels Lohmann
-bool is_primitive() const noexcept
return whether type is primitive
+a class to store JSON values
+namespace for Niels Lohmann
+bool is_primitive() const noexcept
return whether type is primitive
Output (play with this example online): true
true
true
@@ -283,9 +283,10 @@ true
false
false
true
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_primitive.cpp -o is_primitive
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_primitive.cpp -o is_primitive
+- Since
- version 1.0
-Definition at line 1883 of file json.hpp.
+Definition at line 1915 of file json.hpp.
@@ -295,7 +296,7 @@ true
diff --git a/classnlohmann_1_1basic__json_aa0422e861b4cbd7cdcaad7a11a1304a9.html b/classnlohmann_1_1basic__json_aa0422e861b4cbd7cdcaad7a11a1304a9.html
index eb84ec2a4..1b88751e5 100644
--- a/classnlohmann_1_1basic__json_aa0422e861b4cbd7cdcaad7a11a1304a9.html
+++ b/classnlohmann_1_1basic__json_aa0422e861b4cbd7cdcaad7a11a1304a9.html
@@ -256,8 +256,118 @@ template<template< typename U, typename V, typename...Args > class Obje
+
- Parameters
-
+
+ | [in,out] | i | stream to read a serialized JSON value from |
+ | [in] | cb | a parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) |
+
+
+
+
- Returns
- result of the deserialization
+
- Complexity
- Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function cb has a super-linear complexity.
+
- Note
- A UTF-8 byte order mark is silently ignored.
+
- Example
- The example below demonstrates the parse function with and without callback function.
+
+
+
+
+
+
+
+
+
+
+
+
13 "Title": "View from 15th Floor",
+
+
15 "Url": "http://www.example.com/image/481989943",
+
+
+
+
+
20 "IDs": [116, 943, 234, 38793]
+
+
+
+
+
+
+
+
+
+
+
31 std::cout << std::setw(4) << j_complete <<
"\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
54 std::cout << std::setw(4) << j_filtered <<
'\n';
+
+
basic_json<> json
default JSON class
+
a class to store JSON values
+
std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
+
namespace for Niels Lohmann
+
void clear() noexcept
clears the contents
+
the parser read a key of a value in an object
+
static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
+
parse_event_t
JSON callback events.
+
Output (play with this example online): {
+ "Image": {
+ "Animated": false,
+ "Height": 600,
+ "IDs": [
+ 116,
+ 943,
+ 234,
+ 38793
+ ],
+ "Thumbnail": {
+ "Height": 125,
+ "Url": "http://www.example.com/image/481989943",
+ "Width": 100
+ },
+ "Title": "View from 15th Floor",
+ "Width": 800
+ }
+}
-Definition at line 4606 of file json.hpp.
+{
+ "Image": {
+ "Animated": false,
+ "Height": 600,
+ "IDs": [
+ 116,
+ 943,
+ 234,
+ 38793
+ ],
+ "Title": "View from 15th Floor",
+ "Width": 800
+ }
+}
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/parse__istream__parser_callback_t.cpp -o parse__istream__parser_callback_t
+
- See also
- parse(const string_t&, parser_callback_t) for a version that reads from a string
+
- Since
- version 1.0
+
+
Definition at line 4741 of file json.hpp.
@@ -267,7 +377,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aa1f3b3f1dca79392d6727b81f9668c6c.html b/classnlohmann_1_1basic__json_aa1f3b3f1dca79392d6727b81f9668c6c.html
index ed6c765b0..1c28a84ec 100644
--- a/classnlohmann_1_1basic__json_aa1f3b3f1dca79392d6727b81f9668c6c.html
+++ b/classnlohmann_1_1basic__json_aa1f3b3f1dca79392d6727b81f9668c6c.html
@@ -283,20 +283,21 @@ template<template< typename U, typename V, typename...Args > class Obje
27 std::cout << j_string.
back() <<
'\n';
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
-reference back()
access the last element
+reference back()
access the last element
Output (play with this example online): true
17
23.42
2
16
"Hello, world"
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/back.cpp -o back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/back.cpp -o back
+- Since
- version 1.0
-Definition at line 2953 of file json.hpp.
+Definition at line 2981 of file json.hpp.
@@ -306,7 +307,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aa5413178b8041f7ac685dec4b040dd2c.html b/classnlohmann_1_1basic__json_aa5413178b8041f7ac685dec4b040dd2c.html
index 880688be9..d0fbcd6e0 100644
--- a/classnlohmann_1_1basic__json_aa5413178b8041f7ac685dec4b040dd2c.html
+++ b/classnlohmann_1_1basic__json_aa5413178b8041f7ac685dec4b040dd2c.html
@@ -275,14 +275,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-const_iterator cend() const
returns a const iterator to one past the last element
-namespace for Niels Lohmann
-a const random access iterator for the basic_json class
+a class to store JSON values
+const_iterator cend() const
returns a const iterator to one past the last element
+namespace for Niels Lohmann
+a const random access iterator for the basic_json class
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cend.cpp -o cend
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cend.cpp -o cend
+- Since
- version 1.0
-Definition at line 3375 of file json.hpp.
+Definition at line 3441 of file json.hpp.
@@ -292,7 +293,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_aa6a24b176f9599a21d662cc5f8e1ca76.html b/classnlohmann_1_1basic__json_aa6a24b176f9599a21d662cc5f8e1ca76.html
index f21168782..0a6f4f91a 100644
--- a/classnlohmann_1_1basic__json_aa6a24b176f9599a21d662cc5f8e1ca76.html
+++ b/classnlohmann_1_1basic__json_aa6a24b176f9599a21d662cc5f8e1ca76.html
@@ -254,7 +254,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- Since
- version 1.0
-Definition at line 1769 of file json.hpp.
+Definition at line 1794 of file json.hpp.
@@ -264,7 +264,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aa71e977d31f470689883ac60d16ea4ac.html b/classnlohmann_1_1basic__json_aa71e977d31f470689883ac60d16ea4ac.html
index e4df0264e..a1cf9a039 100644
--- a/classnlohmann_1_1basic__json_aa71e977d31f470689883ac60d16ea4ac.html
+++ b/classnlohmann_1_1basic__json_aa71e977d31f470689883ac60d16ea4ac.html
@@ -279,16 +279,17 @@ template<template< typename U, typename V, typename...Args > class Obje
17 std::cout <<
"value = " << value <<
'\n';
18 std::cout <<
"array = " << array <<
'\n';
-ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
-void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
+ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
+void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
Output (play with this example online): value = {"array":["Snap","Crackle","Pop"]}
array = [1,2,3,4]
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__array_t.cpp -o swap__array_t
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__array_t.cpp -o swap__array_t
+- Since
- version 1.0
-Definition at line 4109 of file json.hpp.
+Definition at line 4213 of file json.hpp.
@@ -298,7 +299,7 @@ array = [1,2,3,4]
diff --git a/classnlohmann_1_1basic__json_aabe4661644ea549089f0886c2551d2ac.html b/classnlohmann_1_1basic__json_aabe4661644ea549089f0886c2551d2ac.html
index daaf4d0e1..3b675f871 100644
--- a/classnlohmann_1_1basic__json_aabe4661644ea549089f0886c2551d2ac.html
+++ b/classnlohmann_1_1basic__json_aabe4661644ea549089f0886c2551d2ac.html
@@ -269,7 +269,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- See also
- parse(std::istream&, parser_callback_t) or parse(const string_t&, parser_callback_t) for examples
- Since
- version 1.0
-Definition at line 803 of file json.hpp.
+Definition at line 819 of file json.hpp.
@@ -279,7 +279,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aac185a137428a7337aa620de07bfbbd7.html b/classnlohmann_1_1basic__json_aac185a137428a7337aa620de07bfbbd7.html
index f873480d1..8f4ae9202 100644
--- a/classnlohmann_1_1basic__json_aac185a137428a7337aa620de07bfbbd7.html
+++ b/classnlohmann_1_1basic__json_aac185a137428a7337aa620de07bfbbd7.html
@@ -258,10 +258,11 @@ template<template< typename U, typename V, typename...Args > class Obje
Returns an ordering that is similar to Python:
- order: null < boolean < number < object < array < string
-- furthermore, each type is not smaller than itself
+- furthermore, each type is not smaller than itself
+
- Since
- version 1.0
-
Definition at line 4200 of file json.hpp.
+
Definition at line 4310 of file json.hpp.
@@ -271,7 +272,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aacd442b66140c764c594ac8ad7dfd5b3.html b/classnlohmann_1_1basic__json_aacd442b66140c764c594ac8ad7dfd5b3.html
index 741286029..2ec57fc59 100644
--- a/classnlohmann_1_1basic__json_aacd442b66140c764c594ac8ad7dfd5b3.html
+++ b/classnlohmann_1_1basic__json_aacd442b66140c764c594ac8ad7dfd5b3.html
@@ -293,15 +293,16 @@ template<template< typename U, typename V, typename...Args > class Obje
21 std::cout << number_1 <<
" == " << number_2 <<
" " << (number_1 < number_2) <<
'\n';
22 std::cout << string_1 <<
" == " << string_2 <<
" " << (string_1 < string_2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3] == [1,2,4] true
{"A":"a","B":"b"} == {"A":"a","B":"b"} false
17 == 17.0000000000001 true
"foo" == "bar" false
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__less.cpp -o operator__less
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__less.cpp -o operator__less
+- Since
- version 1.0
-Definition at line 4385 of file json.hpp.
+Definition at line 4505 of file json.hpp.
@@ -311,7 +312,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aacf6c869f6a9c66ac1bc99e93f310044.html b/classnlohmann_1_1basic__json_aacf6c869f6a9c66ac1bc99e93f310044.html
index 9bb369f37..0c6f1de04 100644
--- a/classnlohmann_1_1basic__json_aacf6c869f6a9c66ac1bc99e93f310044.html
+++ b/classnlohmann_1_1basic__json_aacf6c869f6a9c66ac1bc99e93f310044.html
@@ -257,7 +257,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- See also
- number_integer_t – type for number values (integer)
- Since
- version 1.0
-Definition at line 576 of file json.hpp.
+Definition at line 592 of file json.hpp.
@@ -267,7 +267,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html b/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html
index 142e82130..234364c61 100644
--- a/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html
+++ b/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html
@@ -295,8 +295,8 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << std::setw(2) << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {
"array": [
1,
@@ -311,9 +311,10 @@ template<template< typename U, typename V, typename...Args > class Obje
"string": "Hello, world!"
}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator_deserialize.cpp -o operator_deserialize
-- See also
- parse(std::istream&, parser_callback_t) for a variant with a parser callback function to filter values while parsing
+- See also
- parse(std::istream&, parser_callback_t) for a variant with a parser callback function to filter values while parsing
+- Since
- version 1.0
-Definition at line 4642 of file json.hpp.
+Definition at line 4779 of file json.hpp.
@@ -323,7 +324,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aafa839f2a74dc1b5060314b3423143b8.html b/classnlohmann_1_1basic__json_aafa839f2a74dc1b5060314b3423143b8.html
index 03c0c3728..60961fd89 100644
--- a/classnlohmann_1_1basic__json_aafa839f2a74dc1b5060314b3423143b8.html
+++ b/classnlohmann_1_1basic__json_aafa839f2a74dc1b5060314b3423143b8.html
@@ -243,7 +243,7 @@ template<template< typename U, typename V, typename...Args > class Obje
Boolean values are stored directly inside a basic_json type.
- Since
- version 1.0
-Definition at line 443 of file json.hpp.
+Definition at line 459 of file json.hpp.
@@ -253,7 +253,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ab14e3503305622fb5ab01a7f490916e8.html b/classnlohmann_1_1basic__json_ab14e3503305622fb5ab01a7f490916e8.html
index e1d9c6722..baac4c2f0 100644
--- a/classnlohmann_1_1basic__json_ab14e3503305622fb5ab01a7f490916e8.html
+++ b/classnlohmann_1_1basic__json_ab14e3503305622fb5ab01a7f490916e8.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << *new_pos <<
'\n';
15 std::cout << v <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-namespace for Niels Lohmann
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+namespace for Niels Lohmann
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
Output (play with this example online): 7
[1,2,3,4,7,8,9]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__ilist.cpp -o insert__ilist
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert__ilist.cpp -o insert__ilist
+- Since
- version 1.0
-Definition at line 4046 of file json.hpp.
+Definition at line 4146 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ab2162bc76e10d8736cab9b2039956054.html b/classnlohmann_1_1basic__json_ab2162bc76e10d8736cab9b2039956054.html
index 945ef20ad..7f52350d4 100644
--- a/classnlohmann_1_1basic__json_ab2162bc76e10d8736cab9b2039956054.html
+++ b/classnlohmann_1_1basic__json_ab2162bc76e10d8736cab9b2039956054.html
@@ -274,14 +274,15 @@ Illustration from cppreference.com
17 std::cout << *it <<
'\n';
-a class to store JSON values
-a mutable random access iterator for the basic_json class
-iterator end()
returns an iterator to one past the last element
-namespace for Niels Lohmann
+a class to store JSON values
+a mutable random access iterator for the basic_json class
+iterator end()
returns an iterator to one past the last element
+namespace for Niels Lohmann
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/end.cpp -o end
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/end.cpp -o end
+- Since
- version 1.0
-Definition at line 3365 of file json.hpp.
+Definition at line 3431 of file json.hpp.
@@ -291,7 +292,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_ab67345ba5c81c903eddd4eb2a24ac658.html b/classnlohmann_1_1basic__json_ab67345ba5c81c903eddd4eb2a24ac658.html
index 4513e8ed3..695358ade 100644
--- a/classnlohmann_1_1basic__json_ab67345ba5c81c903eddd4eb2a24ac658.html
+++ b/classnlohmann_1_1basic__json_ab67345ba5c81c903eddd4eb2a24ac658.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << *new_pos <<
'\n';
15 std::cout << v <<
'\n';
-a class to store JSON values
-iterator begin()
returns an iterator to the first element
-namespace for Niels Lohmann
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
+a class to store JSON values
+iterator begin()
returns an iterator to the first element
+namespace for Niels Lohmann
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
Output (play with this example online): 10
[1,2,10,3,4]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert.cpp -o insert
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert.cpp -o insert
+- Since
- version 1.0
-Definition at line 3925 of file json.hpp.
+Definition at line 4017 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ab9a20bd1d391e9cb968db50c246f728d.html b/classnlohmann_1_1basic__json_ab9a20bd1d391e9cb968db50c246f728d.html
index 8768a7be3..6468e72b4 100644
--- a/classnlohmann_1_1basic__json_ab9a20bd1d391e9cb968db50c246f728d.html
+++ b/classnlohmann_1_1basic__json_ab9a20bd1d391e9cb968db50c246f728d.html
@@ -297,10 +297,10 @@ template<template< typename U, typename V, typename...Args > class Obje
26 std::cout << j_array_empty.size() <<
'\n';
27 std::cout << j_string.
size() <<
'\n';
-a class to store JSON values
-size_type size() const noexcept
returns the number of elements
+a class to store JSON values
+size_type size() const noexcept
returns the number of elements
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
Output (play with this example online): 0
1
@@ -311,9 +311,10 @@ template<template< typename U, typename V, typename...Args > class Obje
5
0
1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/size.cpp -o size
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/size.cpp -o size
+- Since
- version 1.0
-Definition at line 3594 of file json.hpp.
+Definition at line 3675 of file json.hpp.
@@ -323,7 +324,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ab9da2afc6f77295f25252725fde142a6.html b/classnlohmann_1_1basic__json_ab9da2afc6f77295f25252725fde142a6.html
index 596e61226..dff010ba9 100644
--- a/classnlohmann_1_1basic__json_ab9da2afc6f77295f25252725fde142a6.html
+++ b/classnlohmann_1_1basic__json_ab9da2afc6f77295f25252725fde142a6.html
@@ -283,20 +283,21 @@ template<template< typename U, typename V, typename...Args > class Obje
27 std::cout << j_string.
back() <<
'\n';
-a class to store JSON values
+a class to store JSON values
object (unordered set of name/value pairs)
-namespace for Niels Lohmann
+namespace for Niels Lohmann
array (ordered collection of values)
-reference back()
access the last element
+reference back()
access the last element
Output (play with this example online): true
17
23.42
2
16
"Hello, world"
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/back.cpp -o back
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/back.cpp -o back
+- Since
- version 1.0
-Definition at line 2963 of file json.hpp.
+Definition at line 2991 of file json.hpp.
@@ -306,7 +307,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_abe8f3224ca4041908ddb466cb9caecf1.html b/classnlohmann_1_1basic__json_abe8f3224ca4041908ddb466cb9caecf1.html
index 70f2943c3..24306dcd0 100644
--- a/classnlohmann_1_1basic__json_abe8f3224ca4041908ddb466cb9caecf1.html
+++ b/classnlohmann_1_1basic__json_abe8f3224ca4041908ddb466cb9caecf1.html
@@ -293,9 +293,9 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout << j_array.
max_size() <<
'\n';
23 std::cout << j_string.
max_size() <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-size_type max_size() const noexcept
returns the maximum possible number of elements
+a class to store JSON values
+namespace for Niels Lohmann
+size_type max_size() const noexcept
returns the maximum possible number of elements
Output (play with this example online): 0
1
1
@@ -303,9 +303,10 @@ template<template< typename U, typename V, typename...Args > class Obje
256204778801521550
1152921504606846975
1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/max_size.cpp -o max_size
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/max_size.cpp -o max_size
+- Since
- version 1.0
-Definition at line 3651 of file json.hpp.
+Definition at line 3735 of file json.hpp.
@@ -315,7 +316,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ac4011bd0781e51afe4994d2b09fd27e9.html b/classnlohmann_1_1basic__json_ac4011bd0781e51afe4994d2b09fd27e9.html
index a90a379cb..8175712ba 100644
--- a/classnlohmann_1_1basic__json_ac4011bd0781e51afe4994d2b09fd27e9.html
+++ b/classnlohmann_1_1basic__json_ac4011bd0781e51afe4994d2b09fd27e9.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ac8163abe518595f19dbee68db1caaaf7.html b/classnlohmann_1_1basic__json_ac8163abe518595f19dbee68db1caaaf7.html
index ca2301634..a8c72e067 100644
--- a/classnlohmann_1_1basic__json_ac8163abe518595f19dbee68db1caaaf7.html
+++ b/classnlohmann_1_1basic__json_ac8163abe518595f19dbee68db1caaaf7.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
24 std::cout << j_string.
is_object() <<
'\n';
-a class to store JSON values
-bool is_object() const noexcept
return whether value is an object
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_object() const noexcept
return whether value is an object
+namespace for Niels Lohmann
Output (play with this example online): false
false
false
@@ -283,9 +283,10 @@ false
true
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_object.cpp -o is_object
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_object.cpp -o is_object
+- Since
- version 1.0
-Definition at line 2006 of file json.hpp.
+Definition at line 2062 of file json.hpp.
@@ -295,7 +296,7 @@ false
diff --git a/classnlohmann_1_1basic__json_ac82abedf356d252e0589850c3d8b35ba.html b/classnlohmann_1_1basic__json_ac82abedf356d252e0589850c3d8b35ba.html
index 630f9004b..24b9a7095 100644
--- a/classnlohmann_1_1basic__json_ac82abedf356d252e0589850c3d8b35ba.html
+++ b/classnlohmann_1_1basic__json_ac82abedf356d252e0589850c3d8b35ba.html
@@ -237,7 +237,14 @@ template<template< typename U, typename V, typename...Args > class Obje
RFC 7159 describes JSON arrays as follows:
An array is an ordered sequence of zero or more values.
-To store objects in C++, a type is defined by the template parameters ArrayType which chooses the container (e.g., std::vector or std::list) and AllocatorType which chooses the allocator to use.
+To store objects in C++, a type is defined by the template parameters explained below.
+- Template Parameters
-
+
+ | ArrayType | container type to store arrays (e.g., std::vector or std::list) |
+ | AllocatorType | allocator to use for arrays (e.g., std::allocator) |
+
+
+
Default type
With the default values for ArrayType (std::vector) and AllocatorType (std::allocator), the default value for array_t is:
std::vector<
@@ -254,7 +261,7 @@ template<template< typename U, typename V, typename...Args > class Obje
- See also
- object_t – type for an object value
- Since
- version 1.0
-
Definition at line 371 of file json.hpp.
+
Definition at line 386 of file json.hpp.
@@ -264,7 +271,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ac943391891fcde0a71a15ce990e0f7f4.html b/classnlohmann_1_1basic__json_ac943391891fcde0a71a15ce990e0f7f4.html
index b09fbe868..fb7018d9f 100644
--- a/classnlohmann_1_1basic__json_ac943391891fcde0a71a15ce990e0f7f4.html
+++ b/classnlohmann_1_1basic__json_ac943391891fcde0a71a15ce990e0f7f4.html
@@ -281,14 +281,14 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j1 <<
" = " << j2 <<
'\n';
15 std::cout << std::boolalpha << (j1 == j2) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): ["one","two",3,4.5,false] = ["one","two",3,4.5,false]
true
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__basic_json.cpp -o basic_json__basic_json
- Since
- version 1.0
-Definition at line 1649 of file json.hpp.
+Definition at line 1672 of file json.hpp.
@@ -298,7 +298,7 @@ true
diff --git a/classnlohmann_1_1basic__json_acbf7f957ecb6ce19cdc5b40b5d6b6333.html b/classnlohmann_1_1basic__json_acbf7f957ecb6ce19cdc5b40b5d6b6333.html
index d578d256b..69f0136bd 100644
--- a/classnlohmann_1_1basic__json_acbf7f957ecb6ce19cdc5b40b5d6b6333.html
+++ b/classnlohmann_1_1basic__json_acbf7f957ecb6ce19cdc5b40b5d6b6333.html
@@ -270,8 +270,8 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 17
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__const_int.cpp -o basic_json__const_int
- See also
- basic_json(const number_integer_t) – create a number value (integer)
@@ -279,7 +279,7 @@ template<template< typename U, typename V, typename...Args > class Obje
basic_json(const CompatibleNumberIntegerType) – create a number value (integer) from a compatible number type
- Since
- version 1.0
-Definition at line 1171 of file json.hpp.
+Definition at line 1194 of file json.hpp.
@@ -289,7 +289,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_acdf4445333649ec94198f09a62144884.html b/classnlohmann_1_1basic__json_acdf4445333649ec94198f09a62144884.html
index 546f11fb0..12f6243b4 100644
--- a/classnlohmann_1_1basic__json_acdf4445333649ec94198f09a62144884.html
+++ b/classnlohmann_1_1basic__json_acdf4445333649ec94198f09a62144884.html
@@ -271,14 +271,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-a mutable random access iterator for the basic_json class
-iterator begin()
returns an iterator to the first element
-namespace for Niels Lohmann
+a class to store JSON values
+a mutable random access iterator for the basic_json class
+iterator begin()
returns an iterator to the first element
+namespace for Niels Lohmann
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/begin.cpp -o begin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/begin.cpp -o begin
+- Since
- version 1.0
-Definition at line 3310 of file json.hpp.
+Definition at line 3372 of file json.hpp.
@@ -288,7 +289,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_ace8338e57fdb11e1955c2a0c2d782069.html b/classnlohmann_1_1basic__json_ace8338e57fdb11e1955c2a0c2d782069.html
index 3f30ffbfc..bd78a5aa7 100644
--- a/classnlohmann_1_1basic__json_ace8338e57fdb11e1955c2a0c2d782069.html
+++ b/classnlohmann_1_1basic__json_ace8338e57fdb11e1955c2a0c2d782069.html
@@ -237,8 +237,13 @@ template<template< typename U, typename V, typename...Args > class Obje
RFC 7159 describes JSON strings as follows:
A string is a sequence of zero or more Unicode characters.
-To store objects in C++, a type is defined by the template parameters StringType which chooses the container (e.g., std::string) to use.
-Unicode values are split by the JSON class into byte-sized characters during deserialization.
+To store objects in C++, a type is defined by the template parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization.
+- Template Parameters
-
+
+ | StringType | the container to store strings (e.g., std::string). Note this container is used for keys/names in objects, see object_t. |
+
+
+
Default type
With the default values for StringType (std::string), the default value for string_t is:
std::string
@@ -251,7 +256,7 @@ template<template< typename U, typename V, typename...Args > class Obje
String values are stored as pointers in a basic_json type. That is, for any access to string values, a pointer of type string_t* must be dereferenced.
- Since
- version 1.0
-
Definition at line 417 of file json.hpp.
+
Definition at line 433 of file json.hpp.
@@ -261,7 +266,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ad1f617d29e8923dd40c89153f792b1bc.html b/classnlohmann_1_1basic__json_ad1f617d29e8923dd40c89153f792b1bc.html
index 35e561d9d..00831bda1 100644
--- a/classnlohmann_1_1basic__json_ad1f617d29e8923dd40c89153f792b1bc.html
+++ b/classnlohmann_1_1basic__json_ad1f617d29e8923dd40c89153f792b1bc.html
@@ -279,9 +279,9 @@ template<template< typename U, typename V, typename...Args > class Obje
15 std::cout << j_empty_init_list <<
'\n';
16 std::cout << j_list_of_pairs <<
'\n';
-static basic_json object(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an object from an initializer list
-a class to store JSON values
-namespace for Niels Lohmann
+static basic_json object(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an object from an initializer list
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {}
{}
{"one":1,"two":2}
@@ -291,7 +291,7 @@ template<template< typename U, typename V, typename...Args > class Obje
array(std::initializer_list<basic_json>) – create a JSON array value from an initializer list
- Since
- version 1.0
-Definition at line 1483 of file json.hpp.
+Definition at line 1506 of file json.hpp.
@@ -301,7 +301,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ad2c4513cef5d8db760c4b2d871eea42c.html b/classnlohmann_1_1basic__json_ad2c4513cef5d8db760c4b2d871eea42c.html
index 241843272..c7e20e538 100644
--- a/classnlohmann_1_1basic__json_ad2c4513cef5d8db760c4b2d871eea42c.html
+++ b/classnlohmann_1_1basic__json_ad2c4513cef5d8db760c4b2d871eea42c.html
@@ -246,7 +246,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -256,7 +256,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ad497cbc4f80c8d79662ee6e19bf145dd.html b/classnlohmann_1_1basic__json_ad497cbc4f80c8d79662ee6e19bf145dd.html
index 0b62fdbd0..8ef4a6bf3 100644
--- a/classnlohmann_1_1basic__json_ad497cbc4f80c8d79662ee6e19bf145dd.html
+++ b/classnlohmann_1_1basic__json_ad497cbc4f80c8d79662ee6e19bf145dd.html
@@ -319,21 +319,27 @@ template<class InteratorType , typename std::enable_if<
28 std::cout << j_array <<
'\n';
29 std::cout << j_string <<
'\n';
-a class to store JSON values
-iterator end()
returns an iterator to one past the last element
-iterator begin()
returns an iterator to the first element
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-namespace for Niels Lohmann
-InteratorType erase(InteratorType pos)
remove element given an iterator
+a class to store JSON values
+iterator end()
returns an iterator to one past the last element
+iterator begin()
returns an iterator to the first element
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+namespace for Niels Lohmann
+InteratorType erase(InteratorType pos)
remove element given an iterator
Output (play with this example online): null
null
null
{"one":1}
[1,8,16]
null
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__IteratorType_IteratorType.cpp -o erase__IteratorType_IteratorType
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__IteratorType_IteratorType.cpp -o erase__IteratorType_IteratorType
+- See also
- erase(InteratorType) – removes the element at a given position
+-
+erase(const typename object_t::key_type&) – remvoes the element from an object at the given key
+-
+erase(const size_type) – removes the element from an array at the given index
+- Since
- version 1.0
-Definition at line 3102 of file json.hpp.
+Definition at line 3147 of file json.hpp.
@@ -343,7 +349,7 @@ null
diff --git a/classnlohmann_1_1basic__json_ad7067a1a8ad2d88125915ada6d4d79b7.html b/classnlohmann_1_1basic__json_ad7067a1a8ad2d88125915ada6d4d79b7.html
index e3cd2c5e5..7d4e6ce34 100644
--- a/classnlohmann_1_1basic__json_ad7067a1a8ad2d88125915ada6d4d79b7.html
+++ b/classnlohmann_1_1basic__json_ad7067a1a8ad2d88125915ada6d4d79b7.html
@@ -326,8 +326,8 @@ template<class CompatibleArrayType , typename std::enable_if<
56 std::cout << j_mset <<
'\n';
57 std::cout << j_umset <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): [1,2,3,4]
[1.2,2.3,3.4,5.6]
[true,true,false,true]
@@ -341,7 +341,7 @@ template<class CompatibleArrayType , typename std::enable_if<
- See also
- basic_json(const array_t&) – create an array value
- Since
- version 1.0
-Definition at line 1006 of file json.hpp.
+Definition at line 1029 of file json.hpp.
@@ -351,7 +351,7 @@ template<class CompatibleArrayType , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_ad8e0c5d04f016d1b3ac7369e5c73bedf.html b/classnlohmann_1_1basic__json_ad8e0c5d04f016d1b3ac7369e5c73bedf.html
index 33150c645..da7c0c42f 100644
--- a/classnlohmann_1_1basic__json_ad8e0c5d04f016d1b3ac7369e5c73bedf.html
+++ b/classnlohmann_1_1basic__json_ad8e0c5d04f016d1b3ac7369e5c73bedf.html
@@ -272,14 +272,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-const_iterator cbegin() const
returns a const iterator to the first element
-namespace for Niels Lohmann
-a const random access iterator for the basic_json class
+a class to store JSON values
+const_iterator cbegin() const
returns a const iterator to the first element
+namespace for Niels Lohmann
+a const random access iterator for the basic_json class
Output (play with this example online): 1
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cbegin.cpp -o cbegin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/cbegin.cpp -o cbegin
+- Since
- version 1.0
-Definition at line 3342 of file json.hpp.
+Definition at line 3406 of file json.hpp.
@@ -289,7 +290,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_ada8e01109a60088e4db2a670d4903b54.html b/classnlohmann_1_1basic__json_ada8e01109a60088e4db2a670d4903b54.html
index abde71fdf..49d1718f8 100644
--- a/classnlohmann_1_1basic__json_ada8e01109a60088e4db2a670d4903b54.html
+++ b/classnlohmann_1_1basic__json_ada8e01109a60088e4db2a670d4903b54.html
@@ -290,15 +290,16 @@ template<template< typename U, typename V, typename...Args > class Obje
26 std::cout <<
"out of range" <<
'\n';
-a class to store JSON values
-reference at(size_type idx)
access specified array element with bounds checking
-namespace for Niels Lohmann
+a class to store JSON values
+reference at(size_type idx)
access specified array element with bounds checking
+namespace for Niels Lohmann
Output (play with this example online): "third"
["first","second","third","fourth"]
out of range
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__size_type.cpp -o at__size_type
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__size_type.cpp -o at__size_type
+- Since
- version 1.0
-Definition at line 2539 of file json.hpp.
+Definition at line 2582 of file json.hpp.
@@ -308,7 +309,7 @@ out of range
diff --git a/classnlohmann_1_1basic__json_adbd4c16c9ac641b2a4736bc2c6787d83.html b/classnlohmann_1_1basic__json_adbd4c16c9ac641b2a4736bc2c6787d83.html
index b2c05dfa5..cef72f6e2 100644
--- a/classnlohmann_1_1basic__json_adbd4c16c9ac641b2a4736bc2c6787d83.html
+++ b/classnlohmann_1_1basic__json_adbd4c16c9ac641b2a4736bc2c6787d83.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_add77b50f69debb20e98d5a8c6c11c90c.html b/classnlohmann_1_1basic__json_add77b50f69debb20e98d5a8c6c11c90c.html
index e591827a9..ffae7d8ec 100644
--- a/classnlohmann_1_1basic__json_add77b50f69debb20e98d5a8c6c11c90c.html
+++ b/classnlohmann_1_1basic__json_add77b50f69debb20e98d5a8c6c11c90c.html
@@ -282,16 +282,16 @@ template<template< typename U, typename V, typename...Args > class Obje
15 std::cout << array_1 <<
'\n';
16 std::cout << array_5 <<
'\n';
-basic_json<> json
default JSON class
-a class to store JSON values
-namespace for Niels Lohmann
+basic_json<> json
default JSON class
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): []
["Hello"]
["Hello","Hello","Hello","Hello","Hello"]
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__size_type_basic_json.cpp -o basic_json__size_type_basic_json
- Since
- version 1.0
-Definition at line 1507 of file json.hpp.
+Definition at line 1530 of file json.hpp.
@@ -301,7 +301,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ade7bd6e0fe221fec9d3fa9b430f5ce76.html b/classnlohmann_1_1basic__json_ade7bd6e0fe221fec9d3fa9b430f5ce76.html
index 90889721a..8358ac414 100644
--- a/classnlohmann_1_1basic__json_ade7bd6e0fe221fec9d3fa9b430f5ce76.html
+++ b/classnlohmann_1_1basic__json_ade7bd6e0fe221fec9d3fa9b430f5ce76.html
@@ -275,9 +275,9 @@ template<template< typename U, typename V, typename...Args > class Obje
18 std::cout << j_array.
dump(0) <<
"\n\n";
19 std::cout << j_array.
dump(4) <<
"\n\n";
-a class to store JSON values
-namespace for Niels Lohmann
-string_t dump(const int indent=-1) const
serialization
+a class to store JSON values
+namespace for Niels Lohmann
+string_t dump(const int indent=-1) const
serialization
Output (play with this example online): {"one":1,"two":2}
{"one":1,"two":2}
@@ -313,9 +313,10 @@ template<template< typename U, typename V, typename...Args > class Obje
]
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/dump.cpp -o dump
-- See also
- https://docs.python.org/2/library/json.html#json.dump
+- See also
- https://docs.python.org/2/library/json.html#json.dump
+- Since
- version 1.0
-Definition at line 1835 of file json.hpp.
+Definition at line 1863 of file json.hpp.
@@ -325,7 +326,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_adf5dea6fa9d7075ff89ca0796ab47a7e.html b/classnlohmann_1_1basic__json_adf5dea6fa9d7075ff89ca0796ab47a7e.html
index 72eb3e759..80176cef9 100644
--- a/classnlohmann_1_1basic__json_adf5dea6fa9d7075ff89ca0796ab47a7e.html
+++ b/classnlohmann_1_1basic__json_adf5dea6fa9d7075ff89ca0796ab47a7e.html
@@ -275,13 +275,14 @@ template<template< typename U, typename V, typename...Args > class Obje
15 std::cout << a <<
'\n';
16 std::cout << b <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 23
23
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__copyassignment.cpp -o basic_json__copyassignment
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__copyassignment.cpp -o basic_json__copyassignment
+- Since
- version 1.0
-Definition at line 1743 of file json.hpp.
+Definition at line 1768 of file json.hpp.
@@ -291,7 +292,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ae2980ed978451f844e6e9a0890b637a6.html b/classnlohmann_1_1basic__json_ae2980ed978451f844e6e9a0890b637a6.html
index 0b0314e32..987469731 100644
--- a/classnlohmann_1_1basic__json_ae2980ed978451f844e6e9a0890b637a6.html
+++ b/classnlohmann_1_1basic__json_ae2980ed978451f844e6e9a0890b637a6.html
@@ -268,14 +268,14 @@ template<template< typename U, typename V, typename...Args > class Obje
12 std::cout << j_truth <<
'\n';
13 std::cout << j_falsity <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): true
false
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__boolean_t.cpp -o basic_json__boolean_t
- Since
- version 1.0
-Definition at line 1108 of file json.hpp.
+Definition at line 1131 of file json.hpp.
@@ -285,7 +285,7 @@ false
diff --git a/classnlohmann_1_1basic__json_ae347859ec88176ef76a0cbe5b4514fcf.html b/classnlohmann_1_1basic__json_ae347859ec88176ef76a0cbe5b4514fcf.html
index 9923079ac..c26c6c9b5 100644
--- a/classnlohmann_1_1basic__json_ae347859ec88176ef76a0cbe5b4514fcf.html
+++ b/classnlohmann_1_1basic__json_ae347859ec88176ef76a0cbe5b4514fcf.html
@@ -287,15 +287,16 @@ template<template< typename U, typename V, typename...Args > class Obje
19 std::cout <<
string <<
" != nullptr " << (
string !=
nullptr) <<
'\n';
20 std::cout << null <<
" != nullptr " << (null !=
nullptr) <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online):
[1,2,3] != nullptr true
{"A":"a","B":"b"} != nullptr true
17 != nullptr true
"foo" != nullptr true
null != nullptr false
- The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__notequal__nullptr_t.cpp -o operator__notequal__nullptr_t
-Definition at line 4349 of file json.hpp.
+ The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator__notequal__nullptr_t.cpp -o operator__notequal__nullptr_t
- Since
- version 1.0
+
+Definition at line 4467 of file json.hpp.
@@ -305,7 +306,7 @@ null != nullptr false
diff --git a/classnlohmann_1_1basic__json_ae42d32c34c8014b1bf677fdb7baa5401.html b/classnlohmann_1_1basic__json_ae42d32c34c8014b1bf677fdb7baa5401.html
index 911262903..95ad3bc2a 100644
--- a/classnlohmann_1_1basic__json_ae42d32c34c8014b1bf677fdb7baa5401.html
+++ b/classnlohmann_1_1basic__json_ae42d32c34c8014b1bf677fdb7baa5401.html
@@ -283,8 +283,8 @@ template<class CompatibleStringType , typename std::enable_if<
14 std::cout << j <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): "The quick brown fox jumps over the lazy dog."
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__CompatibleStringType.cpp -o basic_json__CompatibleStringType
- See also
- basic_json(const string_t&) – create a string value
@@ -292,7 +292,7 @@ template<class CompatibleStringType , typename std::enable_if<
basic_json(const typename string_t::value_type*) – create a string value from a character pointer
- Since
- version 1.0
-Definition at line 1090 of file json.hpp.
+Definition at line 1113 of file json.hpp.
@@ -302,7 +302,7 @@ template<class CompatibleStringType , typename std::enable_if<
diff --git a/classnlohmann_1_1basic__json_ae50f22a1c646b8627e88f1313cceffd4.html b/classnlohmann_1_1basic__json_ae50f22a1c646b8627e88f1313cceffd4.html
index 98d18b927..80188cb9f 100644
--- a/classnlohmann_1_1basic__json_ae50f22a1c646b8627e88f1313cceffd4.html
+++ b/classnlohmann_1_1basic__json_ae50f22a1c646b8627e88f1313cceffd4.html
@@ -248,7 +248,7 @@ template<typename PointerType , typename std::enable_if<
Explicit pointer access to the internally stored JSON value. No copies are made.
-
- Warning
- Writing data to the pointee of the result yields an undefined state.
+
- Warning
- The pointer becomes invalid if the underlying JSON object changes.
- Template Parameters
-
| PointerType | pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_float_t. |
@@ -277,18 +277,19 @@ template<typename PointerType , typename std::enable_if<
18 std::cout << *p1 <<
' ' << *p2 <<
' ' << *p3 <<
' ' << *p4 <<
'\n';
19 std::cout << std::boolalpha << (p5 ==
nullptr) <<
'\n';
-a class to store JSON values
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-namespace for Niels Lohmann
-ValueType get() const
get a value (explicit)
-NumberIntegerType number_integer_t
a type for a number (integer)
-NumberFloatType number_float_t
a type for a number (floating-point)
+a class to store JSON values
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+namespace for Niels Lohmann
+ValueType get() const
get a value (explicit)
+NumberIntegerType number_integer_t
a type for a number (integer)
+NumberFloatType number_float_t
a type for a number (floating-point)
Output (play with this example online): 17 17 17 17
true
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/get__PointerType.cpp -o get__PointerType
-- See also
- get_ptr() for explicit pointer-member access
+- See also
- get_ptr() for explicit pointer-member access
+- Since
- version 1.0
-Definition at line 2408 of file json.hpp.
+Definition at line 2445 of file json.hpp.
@@ -298,7 +299,7 @@ true
diff --git a/classnlohmann_1_1basic__json_ae5ae3b1c6c67f52e9495ac092f6fb43e.html b/classnlohmann_1_1basic__json_ae5ae3b1c6c67f52e9495ac092f6fb43e.html
index 99ec3a71e..62401fb12 100644
--- a/classnlohmann_1_1basic__json_ae5ae3b1c6c67f52e9495ac092f6fb43e.html
+++ b/classnlohmann_1_1basic__json_ae5ae3b1c6c67f52e9495ac092f6fb43e.html
@@ -289,15 +289,16 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << *new_pos <<
'\n';
15 std::cout << v <<
'\n';
-a class to store JSON values
-iterator begin()
returns an iterator to the first element
-namespace for Niels Lohmann
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
+a class to store JSON values
+iterator begin()
returns an iterator to the first element
+namespace for Niels Lohmann
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
Output (play with this example online): 10
[1,2,10,3,4]
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert.cpp -o insert
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/insert.cpp -o insert
+- Since
- version 1.0
-Definition at line 3899 of file json.hpp.
+Definition at line 3991 of file json.hpp.
@@ -307,7 +308,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ae874cfc1746b560c53a03bcf5b7bbeed.html b/classnlohmann_1_1basic__json_ae874cfc1746b560c53a03bcf5b7bbeed.html
index 05bef1c04..c74cd1e1d 100644
--- a/classnlohmann_1_1basic__json_ae874cfc1746b560c53a03bcf5b7bbeed.html
+++ b/classnlohmann_1_1basic__json_ae874cfc1746b560c53a03bcf5b7bbeed.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-bool is_structured() const noexcept
return whether type is structured
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_structured() const noexcept
return whether type is structured
+namespace for Niels Lohmann
Output (play with this example online): false
false
false
@@ -283,9 +283,10 @@ false
true
true
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_structured.cpp -o is_structured
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_structured.cpp -o is_structured
+- Since
- version 1.0
-Definition at line 1901 of file json.hpp.
+Definition at line 1935 of file json.hpp.
@@ -295,7 +296,7 @@ false
diff --git a/classnlohmann_1_1basic__json_ae928414b2805cf6ef56b4e4f8d235416.html b/classnlohmann_1_1basic__json_ae928414b2805cf6ef56b4e4f8d235416.html
index 16ae8a860..2fa04fbb0 100644
--- a/classnlohmann_1_1basic__json_ae928414b2805cf6ef56b4e4f8d235416.html
+++ b/classnlohmann_1_1basic__json_ae928414b2805cf6ef56b4e4f8d235416.html
@@ -235,7 +235,7 @@ template<template< typename U, typename V, typename...Args > class Obje
@@ -245,7 +245,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_ae960d2d6bc7b94fe39cc5e9f106edfa9.html b/classnlohmann_1_1basic__json_ae960d2d6bc7b94fe39cc5e9f106edfa9.html
index 74f467455..f139750df 100644
--- a/classnlohmann_1_1basic__json_ae960d2d6bc7b94fe39cc5e9f106edfa9.html
+++ b/classnlohmann_1_1basic__json_ae960d2d6bc7b94fe39cc5e9f106edfa9.html
@@ -273,13 +273,14 @@ template<template< typename U, typename V, typename...Args > class Obje
11 std::cout << array.
at(2) <<
'\n';
-a class to store JSON values
-reference at(size_type idx)
access specified array element with bounds checking
-namespace for Niels Lohmann
+a class to store JSON values
+reference at(size_type idx)
access specified array element with bounds checking
+namespace for Niels Lohmann
Output (play with this example online): "third"
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__size_type_const.cpp -o operatorarray__size_type_const
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__size_type_const.cpp -o operatorarray__size_type_const
+- Since
- version 1.0
-Definition at line 2719 of file json.hpp.
+Definition at line 2752 of file json.hpp.
@@ -289,7 +290,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aea1c863b719b4ca5b77188c171bbfafe.html b/classnlohmann_1_1basic__json_aea1c863b719b4ca5b77188c171bbfafe.html
index 465e6ffe4..ad707df11 100644
--- a/classnlohmann_1_1basic__json_aea1c863b719b4ca5b77188c171bbfafe.html
+++ b/classnlohmann_1_1basic__json_aea1c863b719b4ca5b77188c171bbfafe.html
@@ -265,7 +265,7 @@ template<template< typename U, typename V, typename...Args > class Obje
-Definition at line 738 of file json.hpp.
+Definition at line 754 of file json.hpp.
@@ -275,7 +275,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_aeda4ec7473c17fae51e6d1eba0faf720.html b/classnlohmann_1_1basic__json_aeda4ec7473c17fae51e6d1eba0faf720.html
index cfe653b2a..cccbb33d1 100644
--- a/classnlohmann_1_1basic__json_aeda4ec7473c17fae51e6d1eba0faf720.html
+++ b/classnlohmann_1_1basic__json_aeda4ec7473c17fae51e6d1eba0faf720.html
@@ -284,16 +284,17 @@ template<template< typename U, typename V, typename...Args > class Obje
22 std::cout <<
object <<
'\n';
23 std::cout << null <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void push_back(basic_json &&value)
add an object to an array
+a class to store JSON values
+namespace for Niels Lohmann
+void push_back(basic_json &&value)
add an object to an array
Output (play with this example online): {"one":1,"two":2}
null
{"four":4,"one":1,"three":3,"two":2}
{"A":"a","B":"b"}
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back__object_t__value.cpp -o push_back__object_t__value
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/push_back__object_t__value.cpp -o push_back__object_t__value
+- Since
- version 1.0
-Definition at line 3852 of file json.hpp.
+Definition at line 3942 of file json.hpp.
@@ -303,7 +304,7 @@ null
diff --git a/classnlohmann_1_1basic__json_af073eec08d2e68924098aef09e9a10ba.html b/classnlohmann_1_1basic__json_af073eec08d2e68924098aef09e9a10ba.html
index 580264c25..d25112096 100644
--- a/classnlohmann_1_1basic__json_af073eec08d2e68924098aef09e9a10ba.html
+++ b/classnlohmann_1_1basic__json_af073eec08d2e68924098aef09e9a10ba.html
@@ -271,14 +271,15 @@ template<template< typename U, typename V, typename...Args > class Obje
15 std::cout <<
"j1 = " << j1 <<
'\n';
16 std::cout <<
"j2 = " << j2 <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
+a class to store JSON values
+namespace for Niels Lohmann
+void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
Output (play with this example online): j1 = {"e":2.71828182845905,"pi":3.14159265358979}
j2 = [1,2,3,4,5]
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__reference.cpp -o swap__reference
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/swap__reference.cpp -o swap__reference
+- Since
- version 1.0
-Definition at line 4081 of file json.hpp.
+Definition at line 4183 of file json.hpp.
@@ -288,7 +289,7 @@ j2 = [1,2,3,4,5]
diff --git a/classnlohmann_1_1basic__json_af0ebd1757acb971a6504b4acabf88584.html b/classnlohmann_1_1basic__json_af0ebd1757acb971a6504b4acabf88584.html
index 00a6f162e..484636db4 100644
--- a/classnlohmann_1_1basic__json_af0ebd1757acb971a6504b4acabf88584.html
+++ b/classnlohmann_1_1basic__json_af0ebd1757acb971a6504b4acabf88584.html
@@ -271,14 +271,15 @@ Illustration from cppreference.com
14 std::cout << *it <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
-reverse_iterator rbegin()
returns an iterator to the reverse-beginning
-a template for a reverse iterator class
+a class to store JSON values
+namespace for Niels Lohmann
+reverse_iterator rbegin()
returns an iterator to the reverse-beginning
+a template for a reverse iterator class
Output (play with this example online): 5
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/rbegin.cpp -o rbegin
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/rbegin.cpp -o rbegin
+- Since
- version 1.0
-Definition at line 3419 of file json.hpp.
+Definition at line 3489 of file json.hpp.
@@ -288,7 +289,7 @@ Illustration from cppreference.com
diff --git a/classnlohmann_1_1basic__json_af1e3f9e079136abca2530c8191c56292.html b/classnlohmann_1_1basic__json_af1e3f9e079136abca2530c8191c56292.html
index 34bd012b0..ece4b3ce3 100644
--- a/classnlohmann_1_1basic__json_af1e3f9e079136abca2530c8191c56292.html
+++ b/classnlohmann_1_1basic__json_af1e3f9e079136abca2530c8191c56292.html
@@ -315,21 +315,21 @@ template<template< typename U, typename V, typename...Args > class Obje
18 std::cout << j_nested_object <<
'\n';
19 std::cout << j_nested_array <<
'\n';
-basic_json<> json
default JSON class
-a class to store JSON values
-namespace for Niels Lohmann
+basic_json<> json
default JSON class
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): {}
{"one":1,"two":2}
[1,2,3,4]
{"one":[1],"two":[1,2]}
[[[1],"one"],[[1,2],"two"]]
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__list_init_t.cpp -o basic_json__list_init_t
-- See also
- array(std::initializer_list<basic_json>) - create a JSON array value from an initializer list
+- See also
- array(std::initializer_list<basic_json>) – create a JSON array value from an initializer list
-
-object(std::initializer_list<basic_json>) - create a JSON object value from an initializer list
+object(std::initializer_list<basic_json>) – create a JSON object value from an initializer list
- Since
- version 1.0
-Definition at line 1353 of file json.hpp.
+Definition at line 1376 of file json.hpp.
@@ -339,7 +339,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_af2730bc8ffa6b28916875c13ee7b83f5.html b/classnlohmann_1_1basic__json_af2730bc8ffa6b28916875c13ee7b83f5.html
index 5cd8e30fe..0b90c0f29 100644
--- a/classnlohmann_1_1basic__json_af2730bc8ffa6b28916875c13ee7b83f5.html
+++ b/classnlohmann_1_1basic__json_af2730bc8ffa6b28916875c13ee7b83f5.html
@@ -313,13 +313,13 @@ template<template< typename U, typename V, typename...Args > class Obje
46 std::cout << std::setw(4) << j_filtered <<
'\n';
-basic_json<> json
default JSON class
-a class to store JSON values
-std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
-namespace for Niels Lohmann
+basic_json<> json
default JSON class
+a class to store JSON values
+std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
+namespace for Niels Lohmann
the parser read a key of a value in an object
-static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
-parse_event_t
JSON callback events.
+static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
+parse_event_t
JSON callback events.
Output (play with this example online): {
"Image": {
"Animated": false,
@@ -355,9 +355,10 @@ template<template< typename U, typename V, typename...Args > class Obje
}
}
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/parse__string__parser_callback_t.cpp -o parse__string__parser_callback_t
-- See also
- parse(std::istream&, parser_callback_t) for a version that reads from an input stream
+- See also
- parse(std::istream&, parser_callback_t) for a version that reads from an input stream
+- Since
- version 1.0
-Definition at line 4574 of file json.hpp.
+Definition at line 4704 of file json.hpp.
@@ -367,7 +368,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_af661bc209bf22097e2f76607a11b56bf.html b/classnlohmann_1_1basic__json_af661bc209bf22097e2f76607a11b56bf.html
index a621d766b..a1b7ff9ca 100644
--- a/classnlohmann_1_1basic__json_af661bc209bf22097e2f76607a11b56bf.html
+++ b/classnlohmann_1_1basic__json_af661bc209bf22097e2f76607a11b56bf.html
@@ -273,9 +273,9 @@ template<template< typename U, typename V, typename...Args > class Obje
-a class to store JSON values
-bool is_boolean() const noexcept
return whether value is a boolean
-namespace for Niels Lohmann
+a class to store JSON values
+bool is_boolean() const noexcept
return whether value is a boolean
+namespace for Niels Lohmann
Output (play with this example online): false
true
false
@@ -283,9 +283,10 @@ false
false
false
false
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_boolean.cpp -o is_boolean
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/is_boolean.cpp -o is_boolean
+- Since
- version 1.0
-Definition at line 1935 of file json.hpp.
+Definition at line 1973 of file json.hpp.
@@ -295,7 +296,7 @@ false
diff --git a/classnlohmann_1_1basic__json_af6b6050ccd906dddf7c9f47fe3ad62a5.html b/classnlohmann_1_1basic__json_af6b6050ccd906dddf7c9f47fe3ad62a5.html
index cd7704e5a..2f58ea6e5 100644
--- a/classnlohmann_1_1basic__json_af6b6050ccd906dddf7c9f47fe3ad62a5.html
+++ b/classnlohmann_1_1basic__json_af6b6050ccd906dddf7c9f47fe3ad62a5.html
@@ -284,14 +284,15 @@ template<template< typename U, typename V, typename...Args > class Obje
20 std::cout <<
"out of range" <<
'\n';
-a class to store JSON values
-reference at(size_type idx)
access specified array element with bounds checking
-namespace for Niels Lohmann
+a class to store JSON values
+reference at(size_type idx)
access specified array element with bounds checking
+namespace for Niels Lohmann
Output (play with this example online): "third"
out of range
-
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__size_type_const.cpp -o at__size_type_const
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/at__size_type_const.cpp -o at__size_type_const
+- Since
- version 1.0
-Definition at line 2571 of file json.hpp.
+Definition at line 2611 of file json.hpp.
@@ -301,7 +302,7 @@ out of range
diff --git a/classnlohmann_1_1basic__json_af709c079de0ac3507143ea2c60699bd0.html b/classnlohmann_1_1basic__json_af709c079de0ac3507143ea2c60699bd0.html
index 85c66c014..9385c8466 100644
--- a/classnlohmann_1_1basic__json_af709c079de0ac3507143ea2c60699bd0.html
+++ b/classnlohmann_1_1basic__json_af709c079de0ac3507143ea2c60699bd0.html
@@ -311,8 +311,8 @@ template<typename ValueType , typename std::enable_if<
47 std::cout << i.first <<
": " << i.second <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 1
42 42
17.23 17
@@ -324,9 +324,10 @@ number: {"floating-point":17.23,"integer":42}
null: null
boolean: true
array: [1,2,3,4,5]
- The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__ValueType.cpp -o operator__ValueType
+ The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operator__ValueType.cpp -o operator__ValueType
+- Since
- version 1.0
-Definition at line 2504 of file json.hpp.
+Definition at line 2545 of file json.hpp.
@@ -336,7 +337,7 @@ array: [1,2,3,4,5]
diff --git a/classnlohmann_1_1basic__json_af74581d177dafc38df5a126ccd358999.html b/classnlohmann_1_1basic__json_af74581d177dafc38df5a126ccd358999.html
index 722dc5a0d..8f7d9885c 100644
--- a/classnlohmann_1_1basic__json_af74581d177dafc38df5a126ccd358999.html
+++ b/classnlohmann_1_1basic__json_af74581d177dafc38df5a126ccd358999.html
@@ -292,8 +292,8 @@ template<template< typename U, typename V, typename...Args > class Obje
29 std::cout << std::setw(4) <<
object <<
'\n';
-a class to store JSON values
-namespace for Niels Lohmann
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): 2
{
@@ -316,9 +316,10 @@ template<template< typename U, typename V, typename...Args > class Obje
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/operatorarray__key_type.cpp -o operatorarray__key_type
- See also
- at(const typename object_t::key_type&) for access by reference with range checking
-
-value() for access by value with a default value
+value() for access by value with a default value
+- Since
- version 1.0
-Definition at line 2756 of file json.hpp.
+Definition at line 2786 of file json.hpp.
@@ -328,7 +329,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_af93e556bf708cb81b22ce223af1aa727.html b/classnlohmann_1_1basic__json_af93e556bf708cb81b22ce223af1aa727.html
index 8d9f5ffd7..811ead55c 100644
--- a/classnlohmann_1_1basic__json_af93e556bf708cb81b22ce223af1aa727.html
+++ b/classnlohmann_1_1basic__json_af93e556bf708cb81b22ce223af1aa727.html
@@ -275,15 +275,15 @@ template<template< typename U, typename V, typename...Args > class Obje
14 std::cout << j <<
'\n';
-ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
-a class to store JSON values
-namespace for Niels Lohmann
+ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): ["one","two",3,4.5,false]
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/basic_json__array_t.cpp -o basic_json__array_t
- See also
- basic_json(const CompatibleArrayType&) – create an array value from a compatible STL containers
- Since
- version 1.0
-Definition at line 969 of file json.hpp.
+Definition at line 992 of file json.hpp.
@@ -293,7 +293,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/classnlohmann_1_1basic__json_afc4223b5ad03b1b76e925374a8fff98e.html b/classnlohmann_1_1basic__json_afc4223b5ad03b1b76e925374a8fff98e.html
index 01344866b..bb12775e3 100644
--- a/classnlohmann_1_1basic__json_afc4223b5ad03b1b76e925374a8fff98e.html
+++ b/classnlohmann_1_1basic__json_afc4223b5ad03b1b76e925374a8fff98e.html
@@ -248,8 +248,8 @@ template<template< typename U, typename V, typename...Args > class Obje
Creates a JSON array value from a given initializer list. That is, given a list of values a, b, c, creates the JSON value [a, b, c]. If the initializer list is empty, the empty array [] is created.
- Note
- This function is only needed to express two edge cases that cannot be realized with the initializer list constructor (basic_json(std::initializer_list<basic_json>, bool, value_t)). These cases are:
-- creating an array whose elements are all pairs whose first element is a string - in this case, the initializer list constructor would create an object, taking the first elements as keys
-- creating an empty array - passing the empty initializer list to the initializer list constructor yields an empty object
+- creating an array whose elements are all pairs whose first element is a string – in this case, the initializer list constructor would create an object, taking the first elements as keys
+- creating an empty array – passing the empty initializer list to the initializer list constructor yields an empty object
- Parameters
-
@@ -278,9 +278,9 @@ template<template< typename U, typename V, typename...Args > class Obje
16 std::cout << j_nonempty_init_list <<
'\n';
17 std::cout << j_list_of_pairs <<
'\n';
-static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an array from an initializer list
-a class to store JSON values
-namespace for Niels Lohmann
+static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an array from an initializer list
+a class to store JSON values
+namespace for Niels Lohmann
Output (play with this example online): []
[]
[1,2,3,4]
@@ -291,7 +291,7 @@ template<template< typename U, typename V, typename...Args > class Obje
object(std::initializer_list<basic_json>) – create a JSON object value from an initializer list
- Since
- version 1.0
-Definition at line 1443 of file json.hpp.
+Definition at line 1466 of file json.hpp.
@@ -301,7 +301,7 @@ template<template< typename U, typename V, typename...Args > class Obje
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html
index 8210e383c..2b8f4998b 100644
--- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html
+++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -92,7 +92,7 @@ Files
diff --git a/functions.html b/functions.html
index a261a92e7..ea0294e62 100644
--- a/functions.html
+++ b/functions.html
@@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_b.html b/functions_b.html
index 339fb4e4a..25c997497 100644
--- a/functions_b.html
+++ b/functions_b.html
@@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_c.html b/functions_c.html
index 539e073ed..d754f03b2 100644
--- a/functions_c.html
+++ b/functions_c.html
@@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_d.html b/functions_d.html
index 9eca4985f..ccd883588 100644
--- a/functions_d.html
+++ b/functions_d.html
@@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_e.html b/functions_e.html
index bdbb767a9..d8bfc92e0 100644
--- a/functions_e.html
+++ b/functions_e.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_enum.html b/functions_enum.html
index 7b64e5e9c..bf6f5aa64 100644
--- a/functions_enum.html
+++ b/functions_enum.html
@@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_f.html b/functions_f.html
index 44192a107..890284ebb 100644
--- a/functions_f.html
+++ b/functions_f.html
@@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_func.html b/functions_func.html
index 1ed095c9b..f4292b115 100644
--- a/functions_func.html
+++ b/functions_func.html
@@ -415,7 +415,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_g.html b/functions_g.html
index 59780c8a4..1ffe36926 100644
--- a/functions_g.html
+++ b/functions_g.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_i.html b/functions_i.html
index b637e5887..5b5f43873 100644
--- a/functions_i.html
+++ b/functions_i.html
@@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_j.html b/functions_j.html
index c430b0208..26fec2615 100644
--- a/functions_j.html
+++ b/functions_j.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_k.html b/functions_k.html
index 39a9fe921..9c96c6956 100644
--- a/functions_k.html
+++ b/functions_k.html
@@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_m.html b/functions_m.html
index f57334734..4c267c280 100644
--- a/functions_m.html
+++ b/functions_m.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_n.html b/functions_n.html
index 2cd8ebd38..2e082095a 100644
--- a/functions_n.html
+++ b/functions_n.html
@@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_o.html b/functions_o.html
index b660d15dc..042978ec6 100644
--- a/functions_o.html
+++ b/functions_o.html
@@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_p.html b/functions_p.html
index d45f26ac6..f757134bd 100644
--- a/functions_p.html
+++ b/functions_p.html
@@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_r.html b/functions_r.html
index 6c6e8119f..47cda2e73 100644
--- a/functions_r.html
+++ b/functions_r.html
@@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_rela.html b/functions_rela.html
index 8f0ce0f93..36c0f51f1 100644
--- a/functions_rela.html
+++ b/functions_rela.html
@@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_s.html b/functions_s.html
index bacaefc61..68bc27d1d 100644
--- a/functions_s.html
+++ b/functions_s.html
@@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_t.html b/functions_t.html
index 7d448b48c..01c68b91e 100644
--- a/functions_t.html
+++ b/functions_t.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_type.html b/functions_type.html
index 37d1aee23..a33635063 100644
--- a/functions_type.html
+++ b/functions_type.html
@@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_v.html b/functions_v.html
index 1cf72653b..f3a76fdb6 100644
--- a/functions_v.html
+++ b/functions_v.html
@@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/functions_~.html b/functions_~.html
index cb5fc68f0..883e628f3 100644
--- a/functions_~.html
+++ b/functions_~.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/graph_legend.html b/graph_legend.html
index edc805369..73ed535fa 100644
--- a/graph_legend.html
+++ b/graph_legend.html
@@ -142,7 +142,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
diff --git a/hierarchy.html b/hierarchy.html
index 533de0b39..dcd607cf9 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/index.html b/index.html
index 5a1f84360..777d68848 100644
--- a/index.html
+++ b/index.html
@@ -87,11 +87,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Author
- Niels Lohmann
-- See also
- https://github.com/nlohmann/json to download the source code
+- See also
- https://github.com/nlohmann/json to download the source code
+- Version
- 1.0
diff --git a/json_8hpp_source.html b/json_8hpp_source.html
index b3ec8af9f..c9ac26818 100644
--- a/json_8hpp_source.html
+++ b/json_8hpp_source.html
@@ -119,4728 +119,4626 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
70 using ssize_t = SSIZE_T;
-
-
-
+
+
-
-
-
- 91 struct has_mapped_type
-
-
- 94 template<
typename C>
static char test(
typename C::mapped_type*);
- 95 template<
typename C>
static int test(...);
-
- 97 enum { value =
sizeof(test<T>(0)) ==
sizeof(char) };
-
-
-
- 102 static bool approx(
const T a,
const T b)
-
- 104 return not (a > b or a < b);
-
-
-
-
- 173 template<
typename U,
typename V,
typename... Args>
class ObjectType = std::map,
- 174 template<
typename U,
typename... Args>
class ArrayType = std::vector,
- 175 class StringType = std::string,
- 176 class BooleanType = bool,
- 177 class NumberIntegerType = int64_t,
- 178 class NumberFloatType = double,
- 179 template<
typename U>
class AllocatorType = std::allocator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 93 struct has_mapped_type
+
+
+ 96 template<
typename C>
static char test(
typename C::mapped_type*);
+ 97 template<
typename C>
static int test(...);
+
+ 99 enum { value =
sizeof(test<T>(0)) ==
sizeof(char) };
+
+
+
+ 104 static bool approx(
const T a,
const T b)
+
+ 106 return not (a > b or a < b);
+
+
+
+
+ 179 template<
typename U,
typename V,
typename... Args>
class ObjectType = std::map,
+ 180 template<
typename U,
typename... Args>
class ArrayType = std::vector,
+ 181 class StringType = std::string,
+ 182 class BooleanType = bool,
+ 183 class NumberIntegerType = int64_t,
+ 184 class NumberFloatType = double,
+ 185 template<
typename U>
class AllocatorType = std::allocator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
- 221 using pointer =
typename std::allocator_traits<allocator_type>::pointer;
- 223 using const_pointer =
typename std::allocator_traits<allocator_type>::const_pointer;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 324 using object_t = ObjectType<StringType,
-
- 326 std::less<StringType>,
- 327 AllocatorType<std::pair<
const StringType,
-
-
- 371 using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 610 template<
typename T,
typename... Args>
- 611 static T* create(Args&& ... args)
+
+
+
+
+ 227 using pointer =
typename std::allocator_traits<allocator_type>::pointer;
+ 229 using const_pointer =
typename std::allocator_traits<allocator_type>::const_pointer;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 336 using object_t = ObjectType<StringType,
+
+ 338 std::less<StringType>,
+ 339 AllocatorType<std::pair<
const StringType,
+
+
+ 386 using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- 613 AllocatorType<T> alloc;
- 614 auto deleter = [&](T *
object)
-
- 616 alloc.deallocate(
object, 1);
-
- 618 std::unique_ptr<T, decltype(deleter)>
object(alloc.allocate(1), deleter);
- 619 alloc.construct(
object.
get(), std::forward<Args>(args)...);
- 620 return object.release();
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- 650 json_value() noexcept = default;
- 652 json_value(
boolean_t v) noexcept :
boolean(v) {}
-
-
-
-
-
-
-
-
- 664 object = create<object_t>();
-
-
-
-
-
- 670 array = create<array_t>();
-
-
-
-
-
- 676 string = create<string_t>(
"");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 708 string = create<string_t>(
value);
-
-
-
-
- 714 object = create<object_t>(
value);
-
-
-
-
- 720 array = create<array_t>(
value);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 803 using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
-
-
-
-
-
- 844 : m_type(value), m_value(value)
-
-
-
-
- 887 basic_json(
std::nullptr_t) noexcept
-
-
+
+
+ 626 template<
typename T,
typename... Args>
+ 627 static T* create(Args&& ... args)
+
+ 629 AllocatorType<T> alloc;
+ 630 auto deleter = [&](T *
object)
+
+ 632 alloc.deallocate(
object, 1);
+
+ 634 std::unique_ptr<T, decltype(deleter)>
object(alloc.allocate(1), deleter);
+ 635 alloc.construct(
object.
get(), std::forward<Args>(args)...);
+ 636 return object.release();
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 666 json_value() noexcept = default;
+ 668 json_value(
boolean_t v) noexcept :
boolean(v) {}
+
+
+
+
+
+
+
+
+ 680 object = create<object_t>();
+
+
+
+
+
+ 686 array = create<array_t>();
+
+
+
+
+
+ 692 string = create<string_t>(
"");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 724 string = create<string_t>(
value);
+
+
+
+
+ 730 object = create<object_t>(
value);
+
+
+
+
+ 736 array = create<array_t>(
value);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 819 using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
+
+
+
+
+
+
+ 867 : m_type(value), m_value(value)
+
+
+
-
- 911 : m_type(
value_t::object), m_value(value)
+ 910 basic_json(
std::nullptr_t) noexcept
+
- 937 template <
class CompatibleObjectType,
typename
-
- 939 std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
- 940 std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value,
int>
::type
-
-
-
-
-
-
- 947 m_value.object = create<object_t>(
begin(value),
end(value));
-
-
-
- 970 : m_type(
value_t::array), m_value(value)
-
+
+ 934 : m_type(
value_t::object), m_value(value)
+
+
+ 960 template <
class CompatibleObjectType,
typename
+
+ 962 std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
+ 963 std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value,
int>
::type
+
+
+
+
+
+
+ 970 m_value.object = create<object_t>(
begin(value),
end(value));
+
- 996 template <
class CompatibleArrayType,
typename
-
- 998 not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
- 999 not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
- 1000 not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
- 1001 not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
- 1002 not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
- 1003 not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
- 1004 std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value,
int>::type
-
-
-
-
-
-
- 1011 m_value.array = create<array_t>(
begin(value),
end(value));
-
-
-
- 1036 : m_type(
value_t::string), m_value(value)
-
-
-
-
-
-
- 1086 template <
class CompatibleStringType,
typename
-
- 1088 std::is_constructible<string_t, CompatibleStringType>::value,
int>::type
-
-
-
-
-
-
- 1109 : m_type(
value_t::boolean), m_value(value)
-
-
- 1137 template<
typename T,
- 1138 typename std::enable_if<
- 1139 not (std::is_same<T, int>::value)
-
-
-
- 1143 : m_type(
value_t::number_integer), m_value(value)
-
-
-
- 1172 : m_type(
value_t::number_integer),
-
-
-
- 1201 template<
typename CompatibleNumberIntegerType,
typename
-
- 1203 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
- 1204 std::numeric_limits<CompatibleNumberIntegerType>::is_integer, CompatibleNumberIntegerType>::type
-
-
-
- 1208 m_value(static_cast<number_integer_t>(
value))
-
-
-
- 1236 : m_type(
value_t::number_float), m_value(value)
-
-
- 1239 if (not std::isfinite(value))
-
-
- 1242 m_value = json_value();
-
-
-
- 1276 template<
typename CompatibleNumberFloatType,
typename =
typename
-
- 1278 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
- 1279 std::is_floating_point<CompatibleNumberFloatType>::value>::type
-
-
-
-
-
-
- 1354 bool type_deduction =
true,
-
-
-
-
-
-
-
- 1362 for (
const auto& element : init)
-
- 1364 if (not element.is_array() or element.size() != 2
- 1365 or not element[0].is_string())
-
-
-
-
-
-
-
-
-
- 1375 if (not type_deduction)
-
-
-
-
-
-
+
+ 993 : m_type(
value_t::array), m_value(value)
+
+
+ 1019 template <
class CompatibleArrayType,
typename
+
+ 1021 not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
+ 1022 not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
+ 1023 not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
+ 1024 not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
+ 1025 not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
+ 1026 not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
+ 1027 std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value,
int>::type
+
+
+
+
+
+
+ 1034 m_value.array = create<array_t>(
begin(value),
end(value));
+
+
+
+ 1059 : m_type(
value_t::string), m_value(value)
+
+
+
+
+
+
+ 1109 template <
class CompatibleStringType,
typename
+
+ 1111 std::is_constructible<string_t, CompatibleStringType>::value,
int>::type
+
+
+
+
+
+
+ 1132 : m_type(
value_t::boolean), m_value(value)
+
+
+ 1160 template<
typename T,
+ 1161 typename std::enable_if<
+ 1162 not (std::is_same<T, int>::value)
+
+
+
+ 1166 : m_type(
value_t::number_integer), m_value(value)
+
+
+
+ 1195 : m_type(
value_t::number_integer),
+
+
+
+ 1224 template<
typename CompatibleNumberIntegerType,
typename
+
+ 1226 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
+ 1227 std::numeric_limits<CompatibleNumberIntegerType>::is_integer, CompatibleNumberIntegerType>::type
+
+
+
+ 1231 m_value(static_cast<number_integer_t>(
value))
+
+
+
+ 1259 : m_type(
value_t::number_float), m_value(value)
+
+
+ 1262 if (not std::isfinite(value))
+
+
+ 1265 m_value = json_value();
+
+
+
+ 1299 template<
typename CompatibleNumberFloatType,
typename =
typename
+
+ 1301 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
+ 1302 std::is_floating_point<CompatibleNumberFloatType>::value>::type
+
+
+
+
+
+
+ 1377 bool type_deduction =
true,
+
+
+
+
-
-
-
- 1386 throw std::domain_error(
"cannot create object from initializer list");
-
-
-
-
-
-
-
-
-
- 1396 for (
auto& element : init)
-
- 1398 m_value.object->emplace(std::move(*(element[0].m_value.string)), std::move(element[1]));
-
-
-
-
-
-
- 1405 m_value.array = create<array_t>(std::move(init));
-
-
-
- 1443 static basic_json
array(std::initializer_list<basic_json> init =
- 1444 std::initializer_list<basic_json>())
-
-
-
-
- 1483 static basic_json
object(std::initializer_list<basic_json> init =
- 1484 std::initializer_list<basic_json>())
-
-
-
-
-
-
-
- 1510 m_value.array = create<array_t>(
count,
value);
-
-
- 1545 template <
class InputIT,
typename
-
- 1547 std::is_same<InputIT, typename basic_json_t::iterator>::value or
- 1548 std::is_same<InputIT, typename basic_json_t::const_iterator>::value
-
-
- 1551 basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type)
-
-
- 1554 if (first.m_object != last.m_object)
-
- 1556 throw std::domain_error(
"iterators are not compatible");
-
-
-
-
-
-
-
-
-
-
- 1567 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
-
- 1569 throw std::out_of_range(
"iterators out of range");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1584 m_value.number_integer = first.m_object->m_value.number_integer;
-
-
-
-
+
+
+ 1385 for (
const auto& element : init)
+
+ 1387 if (not element.is_array() or element.size() != 2
+ 1388 or not element[0].is_string())
+
+
+
+
+
+
+
+
+
+ 1398 if (not type_deduction)
+
+
+
+
+
+
+
+
+
+
+ 1409 throw std::domain_error(
"cannot create object from initializer list");
+
+
+
+
+
+
+
+
+
+ 1419 for (
auto& element : init)
+
+ 1421 m_value.object->emplace(std::move(*(element[0].m_value.string)), std::move(element[1]));
+
+
+
+
+
+
+ 1428 m_value.array = create<array_t>(std::move(init));
+
+
+
+ 1466 static basic_json
array(std::initializer_list<basic_json> init =
+ 1467 std::initializer_list<basic_json>())
+
+
+
+
+ 1506 static basic_json
object(std::initializer_list<basic_json> init =
+ 1507 std::initializer_list<basic_json>())
+
+
+
+
+
+
+
+ 1533 m_value.array = create<array_t>(
count,
value);
+
+
+ 1568 template <
class InputIT,
typename
+
+ 1570 std::is_same<InputIT, typename basic_json_t::iterator>::value or
+ 1571 std::is_same<InputIT, typename basic_json_t::const_iterator>::value
+
+
+ 1574 basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type)
+
+
+ 1577 if (first.m_object != last.m_object)
+
+ 1579 throw std::domain_error(
"iterators are not compatible");
+
+
+
+
+
+
+
+
+
- 1590 m_value.number_float = first.m_object->m_value.number_float;
-
-
-
-
-
- 1596 m_value.boolean = first.m_object->m_value.boolean;
-
-
-
-
-
- 1602 m_value = *first.m_object->m_value.string;
-
-
-
-
-
- 1608 m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
-
-
-
-
-
- 1614 m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
-
-
-
-
-
- 1620 throw std::domain_error(
"cannot use construct with iterators from " + first.m_object->type_name());
+ 1590 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+
+ 1592 throw std::out_of_range(
"iterators out of range");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1607 m_value.number_integer = first.m_object->m_value.number_integer;
+
+
+
+
+
+ 1613 m_value.number_float = first.m_object->m_value.number_float;
+
+
+
+
+
+ 1619 m_value.boolean = first.m_object->m_value.boolean;
+
-
-
-
-
-
-
- 1650 : m_type(other.m_type)
-
-
-
-
-
- 1656 m_value = *other.m_value.object;
-
-
-
-
-
- 1662 m_value = *other.m_value.array;
-
-
-
-
-
- 1668 m_value = *other.m_value.string;
-
-
-
-
-
- 1674 m_value = other.m_value.boolean;
-
-
-
-
-
- 1680 m_value = other.m_value.number_integer;
-
-
-
-
-
- 1686 m_value = other.m_value.number_float;
-
-
-
-
-
+
+
+
+ 1625 m_value = *first.m_object->m_value.string;
+
+
+
+
+
+ 1631 m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
+
+
+
+
+
+ 1637 m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
+
+
+
+
+
+ 1643 throw std::domain_error(
"cannot use construct with iterators from " + first.m_object->type_name());
+
+
+
+
+
+
+
+ 1673 : m_type(other.m_type)
+
+
+
+
+
+ 1679 m_value = *other.m_value.object;
+
+
+
+
+
+ 1685 m_value = *other.m_value.array;
+
+
+
+
+
+ 1691 m_value = *other.m_value.string;
-
-
-
-
- 1716 : m_type(
std::move(other.m_type)),
- 1717 m_value(
std::move(other.m_value))
-
-
-
-
-
-
-
- 1744 std::is_nothrow_move_constructible<value_t>::value and
- 1745 std::is_nothrow_move_assignable<value_t>::value and
- 1746 std::is_nothrow_move_constructible<json_value>::value and
- 1747 std::is_nothrow_move_assignable<json_value>::value
-
-
-
- 1751 swap(m_type, other.m_type);
- 1752 swap(m_value, other.m_value);
-
-
-
-
-
-
-
-
-
- 1775 AllocatorType<object_t> alloc;
- 1776 alloc.destroy(m_value.object);
- 1777 alloc.deallocate(m_value.object, 1);
-
-
+
+
+
+ 1697 m_value = other.m_value.boolean;
+
+
+
+
+
+ 1703 m_value = other.m_value.number_integer;
+
+
+
+
+
+ 1709 m_value = other.m_value.number_float;
+
+
+
+
+
+
+
+
+
+
+
+ 1739 : m_type(
std::move(other.m_type)),
+ 1740 m_value(
std::move(other.m_value))
+
+
+
+
+
+
+
+ 1769 std::is_nothrow_move_constructible<value_t>::value and
+ 1770 std::is_nothrow_move_assignable<value_t>::value and
+ 1771 std::is_nothrow_move_constructible<json_value>::value and
+ 1772 std::is_nothrow_move_assignable<json_value>::value
+
+
+
+ 1776 swap(m_type, other.m_type);
+ 1777 swap(m_value, other.m_value);
+
+
-
-
- 1783 AllocatorType<array_t> alloc;
- 1784 alloc.destroy(m_value.array);
- 1785 alloc.deallocate(m_value.array, 1);
-
-
-
-
-
- 1791 AllocatorType<string_t> alloc;
- 1792 alloc.destroy(m_value.string);
- 1793 alloc.deallocate(m_value.string, 1);
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ 1800 AllocatorType<object_t> alloc;
+ 1801 alloc.destroy(m_value.object);
+ 1802 alloc.deallocate(m_value.object, 1);
+
+
-
-
-
+
+
+ 1808 AllocatorType<array_t> alloc;
+ 1809 alloc.destroy(m_value.array);
+ 1810 alloc.deallocate(m_value.array, 1);
+
+
-
-
- 1837 std::stringstream ss;
-
-
-
- 1841 dump(ss,
true, static_cast<unsigned int>(indent));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 1816 AllocatorType<string_t> alloc;
+ 1817 alloc.destroy(m_value.string);
+ 1818 alloc.deallocate(m_value.string, 1);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1865 std::stringstream ss;
+
+
+
+ 1869 dump(ss,
true, static_cast<unsigned int>(indent));
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
- 2093 template <
class T,
typename
-
- 2095 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
- 2096 std::is_convertible<basic_json_t, typename T::mapped_type>::value
-
- 2098 T get_impl(T*)
const
-
-
-
- 2102 return T(m_value.object->begin(), m_value.object->end());
-
-
-
- 2106 throw std::domain_error(
"type must be object, but is " + type_name());
-
-
-
-
-
-
-
- 2115 return *(m_value.object);
-
-
-
- 2119 throw std::domain_error(
"type must be object, but is " + type_name());
-
-
-
- 2124 template <
class T,
typename
-
- 2126 std::is_convertible<basic_json_t, typename T::value_type>::value and
- 2127 not std::is_same<basic_json_t, typename T::value_type>::value and
- 2128 not std::is_arithmetic<T>::value and
- 2129 not std::is_convertible<std::string, T>::value and
- 2130 not has_mapped_type<T>::value
-
- 2132 T get_impl(T*)
const
-
-
-
-
- 2137 std::transform(m_value.array->begin(), m_value.array->end(),
- 2138 std::inserter(to_vector, to_vector.end()), [](basic_json i)
-
- 2140 return i.get<
typename T::value_type>();
-
-
-
-
-
- 2146 throw std::domain_error(
"type must be array, but is " + type_name());
-
-
-
- 2151 template <
class T,
typename
-
- 2153 std::is_convertible<basic_json_t, T>::value and
- 2154 not std::is_same<basic_json_t, T>::value
-
- 2156 std::vector<T> get_impl(std::vector<T>*)
const
-
-
-
- 2160 std::vector<T> to_vector;
- 2161 to_vector.reserve(m_value.array->size());
- 2162 std::transform(m_value.array->begin(), m_value.array->end(),
- 2163 std::inserter(to_vector, to_vector.end()), [](basic_json i)
-
-
-
-
-
-
-
- 2171 throw std::domain_error(
"type must be array, but is " + type_name());
-
-
-
- 2176 template <
class T,
typename
-
- 2178 std::is_same<basic_json, typename T::value_type>::value and
- 2179 not has_mapped_type<T>::value
-
- 2181 T get_impl(T*)
const
-
-
-
- 2185 return T(m_value.array->begin(), m_value.array->end());
-
-
-
- 2189 throw std::domain_error(
"type must be array, but is " + type_name());
-
-
-
-
-
-
-
- 2198 return *(m_value.array);
-
-
-
- 2202 throw std::domain_error(
"type must be array, but is " + type_name());
-
-
-
- 2207 template <
typename T,
typename
-
- 2209 std::is_convertible<string_t, T>::value
-
- 2211 T get_impl(T*)
const
-
-
-
- 2215 return *m_value.string;
-
-
-
- 2219 throw std::domain_error(
"type must be string, but is " + type_name());
-
-
-
- 2224 template<
typename T,
typename
-
- 2226 std::is_arithmetic<T>::value
-
- 2228 T get_impl(T*)
const
-
-
-
-
-
- 2234 return static_cast<T
>(m_value.number_integer);
-
-
-
-
- 2239 return static_cast<T
>(m_value.number_float);
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2157 template <
class T,
typename
+
+ 2159 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
+ 2160 std::is_convertible<basic_json_t, typename T::mapped_type>::value
+
+ 2162 T get_impl(T*)
const
+
+
+ 2165 ? T(m_value.object->begin(), m_value.object->end())
+ 2166 :
throw std::domain_error(
"type must be object, but is " + type_name());
+
+
+
+
+
+
+ 2174 :
throw std::domain_error(
"type must be object, but is " + type_name());
+
+
+ 2178 template <
class T,
typename
+
+ 2180 std::is_convertible<basic_json_t, typename T::value_type>::value and
+ 2181 not std::is_same<basic_json_t, typename T::value_type>::value and
+ 2182 not std::is_arithmetic<T>::value and
+ 2183 not std::is_convertible<std::string, T>::value and
+ 2184 not has_mapped_type<T>::value
+
+ 2186 T get_impl(T*)
const
+
+
+
+
+ 2191 std::transform(m_value.array->begin(), m_value.array->end(),
+ 2192 std::inserter(to_vector, to_vector.end()), [](basic_json i)
+
+ 2194 return i.get<
typename T::value_type>();
+
+
+
+
+
+ 2200 throw std::domain_error(
"type must be array, but is " + type_name());
+
+
+
+ 2205 template <
class T,
typename
+
+ 2207 std::is_convertible<basic_json_t, T>::value and
+ 2208 not std::is_same<basic_json_t, T>::value
+
+ 2210 std::vector<T> get_impl(std::vector<T>*)
const
+
+
+
+ 2214 std::vector<T> to_vector;
+ 2215 to_vector.reserve(m_value.array->size());
+ 2216 std::transform(m_value.array->begin(), m_value.array->end(),
+ 2217 std::inserter(to_vector, to_vector.end()), [](basic_json i)
+
+
+
+
+
+
+
+ 2225 throw std::domain_error(
"type must be array, but is " + type_name());
+
+
+
+ 2230 template <
class T,
typename
+
+ 2232 std::is_same<basic_json, typename T::value_type>::value and
+ 2233 not has_mapped_type<T>::value
+
+ 2235 T get_impl(T*)
const
+
+
+ 2238 ? T(m_value.array->begin(), m_value.array->end())
+ 2239 :
throw std::domain_error(
"type must be array, but is " + type_name());
+
-
-
- 2244 throw std::domain_error(
"type must be number, but is " + type_name());
-
-
-
-
-
-
-
-
- 2254 return m_value.boolean;
-
-
-
- 2258 throw std::domain_error(
"type must be boolean, but is " + type_name());
-
+
+
+
+
+ 2247 :
throw std::domain_error(
"type must be array, but is " + type_name());
+
+
+ 2251 template <
typename T,
typename
+
+ 2253 std::is_convertible<string_t, T>::value
+
+ 2255 T get_impl(T*)
const
+
+
+
+ 2259 :
throw std::domain_error(
"type must be string, but is " + type_name());
-
-
- 2265 return is_object() ? m_value.object :
nullptr;
-
-
-
-
- 2271 return is_object() ? m_value.object :
nullptr;
-
-
-
-
- 2277 return is_array() ? m_value.array :
nullptr;
-
-
-
-
- 2283 return is_array() ? m_value.array :
nullptr;
-
-
-
-
- 2289 return is_string() ? m_value.string :
nullptr;
-
-
-
-
- 2295 return is_string() ? m_value.string :
nullptr;
-
-
-
-
- 2301 return is_boolean() ? &m_value.boolean :
nullptr;
-
-
-
-
- 2307 return is_boolean() ? &m_value.boolean :
nullptr;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2370 template<
typename ValueType,
typename
-
- 2372 not std::is_pointer<ValueType>::value
-
- 2374 ValueType
get()
const
-
- 2376 return get_impl(static_cast<ValueType*>(
nullptr));
-
-
- 2404 template<
typename PointerType,
typename
-
- 2406 std::is_pointer<PointerType>::value
-
- 2408 PointerType
get() noexcept
-
-
- 2411 return get_ptr<PointerType>();
-
-
- 2418 template<
typename PointerType,
typename
-
- 2420 std::is_pointer<PointerType>::value
-
- 2422 const PointerType
get()
const noexcept
-
-
- 2425 return get_ptr<PointerType>();
-
-
- 2451 template<
typename PointerType,
typename
-
- 2453 std::is_pointer<PointerType>::value
-
-
-
-
- 2458 return get_impl_ptr(static_cast<PointerType>(
nullptr));
-
-
- 2465 template<
typename PointerType,
typename
-
- 2467 std::is_pointer<PointerType>::value
- 2468 and std::is_const<typename std::remove_pointer<PointerType>::type>
::value
-
-
-
-
- 2473 return get_impl_ptr(static_cast<const PointerType>(
nullptr));
-
-
- 2500 template<
typename ValueType,
typename
-
- 2502 not std::is_pointer<ValueType>::value
-
- 2504 operator ValueType()
const
-
-
- 2507 return get<ValueType>();
-
-
-
-
-
-
-
-
-
-
-
-
- 2544 return m_value.array->at(idx);
-
-
-
- 2548 throw std::domain_error(
"cannot use at() with " + type_name());
-
-
-
-
-
-
-
-
- 2576 return m_value.array->at(idx);
-
-
-
- 2580 throw std::domain_error(
"cannot use at() with " + type_name());
-
-
-
-
-
-
-
-
- 2612 return m_value.object->at(key);
-
-
-
- 2616 throw std::domain_error(
"cannot use at() with " + type_name());
-
-
-
-
-
-
-
-
- 2648 return m_value.object->at(key);
-
-
-
- 2652 throw std::domain_error(
"cannot use at() with " + type_name());
-
-
-
-
-
-
-
-
-
- 2684 m_value.array = create<array_t>();
-
-
-
-
-
- 2690 for (
size_t i = m_value.array->size(); i <= idx; ++i)
-
-
-
-
- 2695 return m_value.array->operator[](idx);
-
-
-
- 2699 throw std::domain_error(
"cannot use operator[] with " + type_name());
-
-
-
-
-
-
-
-
- 2724 return m_value.array->operator[](idx);
-
-
-
- 2728 throw std::domain_error(
"cannot use operator[] with " + type_name());
-
-
-
-
-
-
-
-
-
- 2762 m_value.object = create<object_t>();
-
-
-
-
-
- 2768 return m_value.object->operator[](key);
-
-
-
- 2772 throw std::domain_error(
"cannot use operator[] with " + type_name());
-
-
-
- 2802 template<
typename T, std::
size_t n>
-
-
-
-
-
-
-
-
-
-
-
-
- 2815 return m_value.object->operator[](key);
-
-
-
- 2819 throw std::domain_error(
"cannot use operator[] with " + type_name());
-
-
-
- 2868 template <
class ValueType,
typename
-
- 2870 std::is_convertible<basic_json_t, ValueType>::value
-
- 2872 ValueType
value(
const typename object_t::key_type& key, ValueType default_value)
const
-
-
-
-
-
- 2878 const auto it =
find(key);
-
-
-
-
-
-
- 2885 return default_value;
-
-
-
-
- 2890 throw std::domain_error(
"cannot use value() with " + type_name());
-
-
-
- 2898 string_t value(
const typename object_t::key_type& key,
const char* default_value)
const
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 2263 template<
typename T,
typename
+
+ 2265 std::is_arithmetic<T>::value
+
+ 2267 T get_impl(T*)
const
+
+
+
+
+
+ 2273 return static_cast<T
>(m_value.number_integer);
+
+
+
+
+ 2278 return static_cast<T
>(m_value.number_float);
+
+
+
+
+ 2283 throw std::domain_error(
"type must be number, but is " + type_name());
+
+
+
+
+
+
+
+
+ 2293 :
throw std::domain_error(
"type must be boolean, but is " + type_name());
+
+
+
+
+ 2299 return is_object() ? m_value.object :
nullptr;
+
+
+
+
+ 2305 return is_object() ? m_value.object :
nullptr;
+
+
+
+
+ 2311 return is_array() ? m_value.array :
nullptr;
+
+
+
+
+ 2317 return is_array() ? m_value.array :
nullptr;
+
+
+
+
+ 2323 return is_string() ? m_value.string :
nullptr;
+
+
+
+
+ 2329 return is_string() ? m_value.string :
nullptr;
+
+
+
+
+ 2335 return is_boolean() ? &m_value.boolean :
nullptr;
+
+
+
+
+ 2341 return is_boolean() ? &m_value.boolean :
nullptr;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2406 template<
typename ValueType,
typename
+
+ 2408 not std::is_pointer<ValueType>::value
+
+ 2410 ValueType
get()
const
+
+ 2412 return get_impl(static_cast<ValueType*>(
nullptr));
+
+
+ 2441 template<
typename PointerType,
typename
+
+ 2443 std::is_pointer<PointerType>::value
+
+ 2445 PointerType
get() noexcept
+
+
+ 2448 return get_ptr<PointerType>();
+
+
+ 2455 template<
typename PointerType,
typename
+
+ 2457 std::is_pointer<PointerType>::value
+
+ 2459 const PointerType
get()
const noexcept
+
+
+ 2462 return get_ptr<PointerType>();
+
+
+ 2490 template<
typename PointerType,
typename
+
+ 2492 std::is_pointer<PointerType>::value
+
+
+
+
+ 2497 return get_impl_ptr(static_cast<PointerType>(
nullptr));
+
+
+ 2504 template<
typename PointerType,
typename
+
+ 2506 std::is_pointer<PointerType>::value
+ 2507 and std::is_const<typename std::remove_pointer<PointerType>::type>
::value
+
+
+
+
+ 2512 return get_impl_ptr(static_cast<const PointerType>(
nullptr));
+
+
+ 2541 template<
typename ValueType,
typename
+
+ 2543 not std::is_pointer<ValueType>::value
+
+ 2545 operator ValueType()
const
+
+
+ 2548 return get<ValueType>();
+
+
+
+
+
+
+
+
+
+
+
+ 2586 ? m_value.array->at(idx)
+ 2587 :
throw std::domain_error(
"cannot use at() with " + type_name());
+
+
+
+
+
+
+ 2615 ? m_value.array->at(idx)
+ 2616 :
throw std::domain_error(
"cannot use at() with " + type_name());
+
+
+
+
+
+
+ 2648 ? m_value.object->at(key)
+ 2649 :
throw std::domain_error(
"cannot use at() with " + type_name());
+
+
+
+
+
+
+ 2681 ? m_value.object->at(key)
+ 2682 :
throw std::domain_error(
"cannot use at() with " + type_name());
+
+
+
+
+
+
+
+
+ 2715 m_value.array = create<array_t>();
+
+
+
+
+
+ 2721 for (
size_t i = m_value.array->size(); i <= idx; ++i)
+
+
+
+
+ 2726 return m_value.array->operator[](idx);
+
+
+
+ 2730 throw std::domain_error(
"cannot use operator[] with " + type_name());
+
+
+
+
+
+
+
+ 2756 ? m_value.array->operator[](idx)
+ 2757 :
throw std::domain_error(
"cannot use operator[] with " + type_name());
+
+
+
+
+
+
+
+
+ 2792 m_value.object = create<object_t>();
+
+
+
+
+ 2797 ? m_value.object->operator[](key)
+ 2798 :
throw std::domain_error(
"cannot use operator[] with " + type_name());
+
+
+ 2829 template<
typename T, std::
size_t n>
+
+
+
+
+
+
+
+
+
+
+
+ 2841 ? m_value.object->operator[](key)
+ 2842 :
throw std::domain_error(
"cannot use operator[] with " + type_name());
+
+
+ 2892 template <
class ValueType,
typename
+
+ 2894 std::is_convertible<basic_json_t, ValueType>::value
+
+ 2896 ValueType
value(
const typename object_t::key_type& key, ValueType default_value)
const
+
+
+
+
+
+ 2902 const auto it =
find(key);
+
+
+
+
+
+
+ 2909 return default_value;
+
+
+
+
+ 2914 throw std::domain_error(
"cannot use value() with " + type_name());
+
+
+
+ 2922 string_t value(
const typename object_t::key_type& key,
const char* default_value)
const
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- 3003 template <
class InteratorType,
typename
-
- 3005 std::is_same<InteratorType, typename basic_json_t::iterator>::value or
- 3006 std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
-
-
-
-
-
- 3012 if (
this != pos.m_object)
-
- 3014 throw std::domain_error(
"iterator does not fit current value");
-
-
- 3017 InteratorType result =
end();
-
-
-
-
-
-
-
-
- 3026 if (not pos.m_it.primitive_iterator.is_begin())
-
- 3028 throw std::out_of_range(
"iterator out of range");
-
-
-
-
- 3033 delete m_value.string;
- 3034 m_value.string =
nullptr;
-
-
-
-
-
-
-
-
- 3043 result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator);
-
-
-
-
-
- 3049 result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator);
-
-
-
-
-
- 3055 throw std::domain_error(
"cannot use erase() with " + type_name());
-
-
-
-
-
-
- 3096 template <
class InteratorType,
typename
-
- 3098 std::is_same<InteratorType, typename basic_json_t::iterator>::value or
- 3099 std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
-
-
- 3102 InteratorType
erase(InteratorType first, InteratorType last)
-
-
- 3105 if (
this != first.m_object or
this != last.m_object)
-
- 3107 throw std::domain_error(
"iterators do not fit current value");
-
-
- 3110 InteratorType result =
end();
-
-
-
-
-
-
-
-
- 3119 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
-
- 3121 throw std::out_of_range(
"iterators out of range");
-
-
-
-
- 3126 delete m_value.string;
- 3127 m_value.string =
nullptr;
-
-
-
-
-
-
-
-
- 3136 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
- 3137 last.m_it.object_iterator);
-
-
-
-
-
- 3143 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
- 3144 last.m_it.array_iterator);
-
-
-
-
-
- 3150 throw std::domain_error(
"cannot use erase with " + type_name());
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3040 template <
class InteratorType,
typename
+
+ 3042 std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+ 3043 std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+
+
+
+
+
+ 3049 if (
this != pos.m_object)
+
+ 3051 throw std::domain_error(
"iterator does not fit current value");
+
+
+ 3054 InteratorType result =
end();
+
+
+
+
+
+
+
+
+ 3063 if (not pos.m_it.primitive_iterator.is_begin())
+
+ 3065 throw std::out_of_range(
"iterator out of range");
+
+
+
+
+ 3070 delete m_value.string;
+ 3071 m_value.string =
nullptr;
+
+
+
+
+
+
+
+
+ 3080 result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator);
+
+
+
+
+
+ 3086 result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator);
+
+
+
+
+
+ 3092 throw std::domain_error(
"cannot use erase() with " + type_name());
+
+
+
+
+
+
+ 3141 template <
class InteratorType,
typename
+
+ 3143 std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+ 3144 std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+
+
+ 3147 InteratorType
erase(InteratorType first, InteratorType last)
+
+
+ 3150 if (
this != first.m_object or
this != last.m_object)
+
+ 3152 throw std::domain_error(
"iterators do not fit current value");
+
+
+ 3155 InteratorType result =
end();
-
-
-
-
-
- 3179 return m_value.object->erase(key);
-
-
-
- 3183 throw std::domain_error(
"cannot use erase() with " + type_name());
-
-
-
-
-
-
-
-
-
-
- 3208 throw std::out_of_range(
"index out of range");
-
-
- 3211 m_value.array->erase(m_value.array->begin() +
static_cast<difference_type>(idx));
-
-
-
- 3215 throw std::domain_error(
"cannot use erase() with " + type_name());
-
-
-
-
-
- 3236 auto result =
end();
-
-
-
- 3240 result.m_it.object_iterator = m_value.object->find(key);
-
-
-
-
-
-
-
- 3252 auto result =
cend();
-
-
-
- 3256 result.m_it.object_iterator = m_value.object->find(key);
-
-
-
-
-
-
-
-
- 3281 return (
is_object()) ? m_value.object->count(key) : 0;
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 3164 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+
+ 3166 throw std::out_of_range(
"iterators out of range");
+
+
+
+
+ 3171 delete m_value.string;
+ 3172 m_value.string =
nullptr;
+
+
+
+
+
+
+
+
+ 3181 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
+ 3182 last.m_it.object_iterator);
+
+
+
+
+
+ 3188 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
+ 3189 last.m_it.array_iterator);
+
+
+
+
+
+ 3195 throw std::domain_error(
"cannot use erase with " + type_name());
+
+
+
+
+
+
+
+
+
+
+ 3231 ? m_value.object->erase(key)
+ 3232 :
throw std::domain_error(
"cannot use erase() with " + type_name());
+
+
+
+
+
+
+
+
+
+ 3264 throw std::out_of_range(
"index out of range");
+
+
+ 3267 m_value.array->erase(m_value.array->begin() +
static_cast<difference_type>(idx));
+
+
+
+ 3271 throw std::domain_error(
"cannot use erase() with " + type_name());
+
+
+
+
+
+ 3294 auto result =
end();
+
+
+
+ 3298 result.m_it.object_iterator = m_value.object->find(key);
+
+
+
+
+
+
+
+ 3310 auto result =
cend();
+
+
+
+ 3314 result.m_it.object_iterator = m_value.object->find(key);
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3551 return m_value.array->empty();
-
-
-
-
- 3556 return m_value.object->empty();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3605 return m_value.array->size();
-
-
-
-
- 3610 return m_value.object->size();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3657 return m_value.array->max_size();
-
-
-
-
- 3662 return m_value.object->max_size();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3712 m_value.number_integer = 0;
-
-
-
-
-
- 3718 m_value.number_float = 0.0;
-
-
-
-
-
- 3724 m_value.boolean =
false;
-
-
-
-
-
- 3730 m_value.string->clear();
-
-
-
-
-
- 3736 m_value.array->clear();
-
-
-
-
-
- 3742 m_value.object->clear();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3775 throw std::domain_error(
"cannot use push_back() with " + type_name());
-
-
-
-
-
-
-
-
-
-
- 3786 m_value.array->push_back(std::move(
value));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3810 throw std::domain_error(
"cannot use push_back() with " + type_name());
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ 3341 return is_object() ? m_value.object->count(key) : 0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3630 return m_value.array->empty();
+
+
+
+
+ 3635 return m_value.object->empty();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3687 return m_value.array->size();
+
+
+
+
+ 3692 return m_value.object->size();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3741 return m_value.array->max_size();
+
+
+
+
+ 3746 return m_value.object->max_size();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3798 m_value.number_integer = 0;
+
+
+
+
+
+ 3804 m_value.number_float = 0.0;
+
+
+
+
+
+ 3810 m_value.boolean =
false;
+
+
+
+
+
+ 3816 m_value.string->clear();
+
+
-
- 3821 m_value.array->push_back(value);
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3857 throw std::domain_error(
"cannot use push_back() with " + type_name());
-
-
-
-
+
+
+ 3822 m_value.array->clear();
+
+
+
+
+
+ 3828 m_value.object->clear();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- 3868 m_value.object->insert(value);
-
-
-
-
-
-
-
-
-
-
-
-
+ 3863 throw std::domain_error(
"cannot use push_back() with " + type_name());
+
+
+
+
+
+
+
+
+
+
+ 3874 m_value.array->push_back(std::move(
value));
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3898 throw std::domain_error(
"cannot use push_back() with " + type_name());
+
+
+
+
-
- 3905 if (pos.m_object !=
this)
-
- 3907 throw std::domain_error(
"iterator does not fit current value");
-
-
-
-
- 3912 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, value);
-
-
-
-
- 3917 throw std::domain_error(
"cannot use insert() with " + type_name());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3956 if (pos.m_object !=
this)
-
- 3958 throw std::domain_error(
"iterator does not fit current value");
-
+
+
+
+
+
+ 3909 m_value.array->push_back(value);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3947 throw std::domain_error(
"cannot use push_back() with " + type_name());
+
+
+
+
+
+
+
+
+
+
+ 3958 m_value.object->insert(value);
+
-
-
- 3963 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, count, value);
-
-
-
-
- 3968 throw std::domain_error(
"cannot use insert() with " + type_name());
-
-
-
-
-
-
-
-
- 4001 throw std::domain_error(
"cannot use insert() with " + type_name());
-
-
-
- 4005 if (pos.m_object !=
this)
-
- 4007 throw std::domain_error(
"iterator does not fit current value");
-
-
- 4010 if (first.m_object != last.m_object)
-
- 4012 throw std::domain_error(
"iterators does not fit");
-
-
- 4015 if (first.m_object ==
this or last.m_object ==
this)
-
- 4017 throw std::domain_error(
"passed iterators may not belong to container");
-
-
-
-
- 4022 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator,
- 4023 first.m_it.array_iterator, last.m_it.array_iterator);
-
-
-
-
-
-
-
-
- 4051 throw std::domain_error(
"cannot use insert() with " + type_name());
-
-
-
- 4055 if (pos.m_object !=
this)
-
- 4057 throw std::domain_error(
"iterator does not fit current value");
-
-
-
-
- 4062 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist);
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 3997 if (pos.m_object !=
this)
+
+ 3999 throw std::domain_error(
"iterator does not fit current value");
+
+
+
+
+ 4004 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, value);
+
+
+
+
+ 4009 throw std::domain_error(
"cannot use insert() with " + type_name());
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4050 if (pos.m_object !=
this)
+
+ 4052 throw std::domain_error(
"iterator does not fit current value");
+
+
+
+
+ 4057 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, count, value);
+
+
+
+
+ 4062 throw std::domain_error(
"cannot use insert() with " + type_name());
+
-
- 4082 std::is_nothrow_move_constructible<value_t>::value and
- 4083 std::is_nothrow_move_assignable<value_t>::value and
- 4084 std::is_nothrow_move_constructible<json_value>::value and
- 4085 std::is_nothrow_move_assignable<json_value>::value
-
-
- 4088 std::swap(m_type, other.m_type);
- 4089 std::swap(m_value, other.m_value);
-
-
-
-
-
-
-
- 4114 std::swap(*(m_value.array), other);
-
-
-
- 4118 throw std::domain_error(
"cannot use swap() with " + type_name());
-
-
-
-
-
-
-
-
- 4144 std::swap(*(m_value.object), other);
-
-
-
- 4148 throw std::domain_error(
"cannot use swap() with " + type_name());
-
-
-
-
-
-
-
-
- 4174 std::swap(*(m_value.string), other);
-
-
-
- 4178 throw std::domain_error(
"cannot use swap() with " + type_name());
-
-
-
-
-
-
-
-
-
-
-
- 4202 static constexpr std::array<uint8_t, 7> order = {{
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4219 return order[
static_cast<std::size_t
>(lhs)] < order[static_cast<std::size_t>(rhs)];
-
-
-
-
-
- 4246 const auto lhs_type = lhs.type();
- 4247 const auto rhs_type = rhs.type();
-
- 4249 if (lhs_type == rhs_type)
-
-
-
-
- 4254 return *lhs.m_value.array == *rhs.m_value.array;
-
- 4256 return *lhs.m_value.object == *rhs.m_value.object;
-
-
-
- 4260 return *lhs.m_value.string == *rhs.m_value.string;
-
- 4262 return lhs.m_value.boolean == rhs.m_value.boolean;
-
- 4264 return lhs.m_value.number_integer == rhs.m_value.number_integer;
-
- 4266 return approx(lhs.m_value.number_float, rhs.m_value.number_float);
-
-
-
-
-
-
- 4273 return approx(static_cast<number_float_t>(lhs.m_value.number_integer),
- 4274 rhs.m_value.number_float);
-
-
-
- 4278 return approx(lhs.m_value.number_float,
- 4279 static_cast<number_float_t>(rhs.m_value.number_integer));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4330 return not (lhs == rhs);
-
-
-
-
-
-
-
-
-
- 4360 return not v.is_null();
-
-
-
-
- 4387 const auto lhs_type = lhs.type();
- 4388 const auto rhs_type = rhs.type();
-
- 4390 if (lhs_type == rhs_type)
-
-
-
-
- 4395 return *lhs.m_value.array < *rhs.m_value.array;
-
- 4397 return *lhs.m_value.object < *rhs.m_value.object;
-
-
-
- 4401 return *lhs.m_value.string < *rhs.m_value.string;
-
- 4403 return lhs.m_value.boolean < rhs.m_value.boolean;
-
- 4405 return lhs.m_value.number_integer < rhs.m_value.number_integer;
-
- 4407 return lhs.m_value.number_float < rhs.m_value.number_float;
-
-
-
-
-
-
-
- 4415 rhs.m_value.number_float;
-
-
-
- 4419 return lhs.m_value.number_float <
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ 4097 throw std::domain_error(
"cannot use insert() with " + type_name());
+
+
+
+ 4101 if (pos.m_object !=
this)
+
+ 4103 throw std::domain_error(
"iterator does not fit current value");
+
+
+ 4106 if (first.m_object != last.m_object)
+
+ 4108 throw std::domain_error(
"iterators do not fit");
+
+
+ 4111 if (first.m_object ==
this or last.m_object ==
this)
+
+ 4113 throw std::domain_error(
"passed iterators may not belong to container");
+
+
+
+
+ 4118 result.m_it.array_iterator = m_value.array->insert(
+ 4119 pos.m_it.array_iterator,
+ 4120 first.m_it.array_iterator,
+ 4121 last.m_it.array_iterator);
+
+
+
+
+
+
+
+
+ 4151 throw std::domain_error(
"cannot use insert() with " + type_name());
+
+
+
+ 4155 if (pos.m_object !=
this)
+
+ 4157 throw std::domain_error(
"iterator does not fit current value");
+
+
+
+
+ 4162 result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist);
+
+
+
+
+ 4184 std::is_nothrow_move_constructible<value_t>::value and
+ 4185 std::is_nothrow_move_assignable<value_t>::value and
+ 4186 std::is_nothrow_move_constructible<json_value>::value and
+ 4187 std::is_nothrow_move_assignable<json_value>::value
+
+
+ 4190 std::swap(m_type, other.m_type);
+ 4191 std::swap(m_value, other.m_value);
+
+
+
+
+
+
+
+ 4218 std::swap(*(m_value.array), other);
+
+
+
+ 4222 throw std::domain_error(
"cannot use swap() with " + type_name());
+
+
+
+
+
+
+
+
+ 4250 std::swap(*(m_value.object), other);
+
+
+
+ 4254 throw std::domain_error(
"cannot use swap() with " + type_name());
+
+
+
+
+
+
+
+
+ 4282 std::swap(*(m_value.string), other);
+
+
+
+ 4286 throw std::domain_error(
"cannot use swap() with " + type_name());
+
+
+
+
+
+
+
+
+
+
+
+ 4312 static constexpr std::array<uint8_t, 7> order = {{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4329 return order[
static_cast<std::size_t
>(lhs)] < order[static_cast<std::size_t>(rhs)];
+
+
+
+
+
+ 4358 const auto lhs_type = lhs.type();
+ 4359 const auto rhs_type = rhs.type();
+
+ 4361 if (lhs_type == rhs_type)
+
+
+
+
+ 4366 return *lhs.m_value.array == *rhs.m_value.array;
+
+ 4368 return *lhs.m_value.object == *rhs.m_value.object;
+
+
+
+ 4372 return *lhs.m_value.string == *rhs.m_value.string;
+
+ 4374 return lhs.m_value.boolean == rhs.m_value.boolean;
+
+ 4376 return lhs.m_value.number_integer == rhs.m_value.number_integer;
+
+ 4378 return approx(lhs.m_value.number_float, rhs.m_value.number_float);
+
+
+
+
+
+
+ 4385 return approx(static_cast<number_float_t>(lhs.m_value.number_integer),
+ 4386 rhs.m_value.number_float);
+
+
+
+ 4390 return approx(lhs.m_value.number_float,
+ 4391 static_cast<number_float_t>(rhs.m_value.number_integer));
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- 4446 return not (rhs < lhs);
+ 4446 return not (lhs == rhs);
-
-
- 4466 return not (lhs <= rhs);
-
-
-
-
- 4486 return not (lhs < rhs);
-
-
-
-
-
-
-
- 4519 friend std::ostream&
operator<<(std::ostream& o,
const basic_json& j)
-
-
- 4522 const bool pretty_print = (o.width() > 0);
- 4523 const auto indentation = (pretty_print ? o.width() : 0);
-
-
-
-
-
- 4529 j.
dump(o, pretty_print, static_cast<unsigned int>(indentation));
-
-
-
- 4537 friend std::ostream&
operator>>(
const basic_json& j, std::ostream& o)
-
-
-
-
-
-
-
-
-
-
-
- 4576 return parser(s, cb).
parse();
-
-
-
-
- 4603 return parser(i, cb).
parse();
-
-
-
-
- 4608 return parser(i, cb).
parse();
-
-
-
-
- 4634 j = parser(i).
parse();
-
-
-
-
-
- 4644 j = parser(i).
parse();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4706 static std::size_t extra_space(
const string_t& s) noexcept
-
- 4708 std::size_t result = 0;
-
- 4710 for (
const auto& c : s)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4729 if (c >= 0x00 and c <= 0x1f)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4757 const auto space = extra_space(s);
-
-
-
-
-
-
- 4764 string_t result(s.size() + space,
'\\');
- 4765 std::size_t pos = 0;
-
- 4767 for (
const auto& c : s)
-
-
-
-
-
-
- 4774 result[pos + 1] =
'"';
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 4478 return not v.is_null();
+
+
+
+
+ 4507 const auto lhs_type = lhs.type();
+ 4508 const auto rhs_type = rhs.type();
+
+ 4510 if (lhs_type == rhs_type)
+
+
+
+
+ 4515 return *lhs.m_value.array < *rhs.m_value.array;
+
+ 4517 return *lhs.m_value.object < *rhs.m_value.object;
+
+
+
+ 4521 return *lhs.m_value.string < *rhs.m_value.string;
+
+ 4523 return lhs.m_value.boolean < rhs.m_value.boolean;
+
+ 4525 return lhs.m_value.number_integer < rhs.m_value.number_integer;
+
+ 4527 return lhs.m_value.number_float < rhs.m_value.number_float;
+
+
+
+
+
+
+
+ 4535 rhs.m_value.number_float;
+
+
+
+ 4539 return lhs.m_value.number_float <
+
+
+
+
+
+
+
+
+
+
+
+ 4568 return not (rhs < lhs);
+
+
+
+
+ 4590 return not (lhs <= rhs);
+
+
+
+
+ 4612 return not (lhs < rhs);
+
+
+
+
+
+
+
+ 4647 friend std::ostream&
operator<<(std::ostream& o,
const basic_json& j)
+
+
+ 4650 const bool pretty_print = (o.width() > 0);
+ 4651 const auto indentation = (pretty_print ? o.width() : 0);
+
+
+
+
+
+ 4657 j.
dump(o, pretty_print, static_cast<unsigned int>(indentation));
+
+
+
+ 4665 friend std::ostream&
operator>>(
const basic_json& j, std::ostream& o)
+
+
+
+
+
+
+
+
+
+
+
+ 4706 return parser(s, cb).
parse();
+
+
+
+
+ 4735 return parser(i, cb).
parse();
+
+
+
+
+ 4743 return parser(i, cb).
parse();
+
+
+
+
+ 4771 j = parser(i).
parse();
+
+
+
+
+
+ 4781 j = parser(i).
parse();
+
+
+
-
-
-
- 4790 result[pos + 1] =
'b';
-
-
-
-
-
-
-
- 4798 result[pos + 1] =
'f';
-
-
-
-
-
-
-
- 4806 result[pos + 1] =
'n';
-
-
-
-
-
-
-
- 4814 result[pos + 1] =
'r';
-
-
-
-
-
-
-
- 4822 result[pos + 1] =
't';
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4823 static std::size_t extra_space(
const string_t& s) noexcept
+
+ 4825 std::size_t result = 0;
-
-
- 4829 if (c >= 0x00 and c <= 0x1f)
-
-
- 4832 auto hexify = [](
const char v) ->
char
-
- 4834 return (v < 10) ? (
'0' + v) : (
'a' + v - 10);
-
-
-
-
- 4839 {
'u',
'0',
'0', hexify(c >> 4), hexify(c & 0x0f)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4877 void dump(std::ostream& o,
const bool pretty_print,
const unsigned int indent_step,
- 4878 const unsigned int current_indent = 0)
const
-
-
- 4881 unsigned int new_indent = current_indent;
-
-
-
-
-
- 4887 if (m_value.object->empty())
-
-
-
-
-
-
-
-
-
-
- 4898 new_indent += indent_step;
-
-
-
- 4902 for (
auto i = m_value.object->cbegin(); i != m_value.object->cend(); ++i)
-
- 4904 if (i != m_value.object->cbegin())
-
- 4906 o << (pretty_print ?
",\n" :
",");
-
- 4908 o <<
string_t(new_indent,
' ') <<
"\""
- 4909 << escape_string(i->first) <<
"\":"
- 4910 << (pretty_print ?
" " :
"");
- 4911 i->second.dump(o, pretty_print, indent_step, new_indent);
-
-
-
-
-
- 4917 new_indent -= indent_step;
-
-
-
- 4921 o <<
string_t(new_indent,
' ') +
"}";
-
-
-
-
-
- 4927 if (m_value.array->empty())
-
-
-
-
-
-
-
-
-
-
- 4938 new_indent += indent_step;
-
-
-
- 4942 for (
auto i = m_value.array->cbegin(); i != m_value.array->cend(); ++i)
-
- 4944 if (i != m_value.array->cbegin())
-
- 4946 o << (pretty_print ?
",\n" :
",");
-
-
- 4949 i->dump(o, pretty_print, indent_step, new_indent);
-
-
-
-
-
- 4955 new_indent -= indent_step;
-
-
-
- 4959 o <<
string_t(new_indent,
' ') <<
"]";
-
-
-
-
-
- 4965 o <<
string_t(
"\"") << escape_string(*m_value.string) <<
"\"";
-
-
-
-
-
- 4971 o << (m_value.boolean ?
"true" :
"false");
-
-
-
-
-
- 4977 o << m_value.number_integer;
-
-
-
-
-
-
-
-
- 4986 o << std::setprecision(std::numeric_limits<number_float_t>::digits10) << m_value.number_float;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 4827 for (
const auto& c : s)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4846 if (c >= 0x00 and c <= 0x1f)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4874 const auto space = extra_space(s);
+
+
+
+
+
+
+ 4881 string_t result(s.size() + space,
'\\');
+ 4882 std::size_t pos = 0;
+
+ 4884 for (
const auto& c : s)
+
+
+
+
+
+
+ 4891 result[pos + 1] =
'"';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4907 result[pos + 1] =
'b';
+
+
+
+
+
+
+
+ 4915 result[pos + 1] =
'f';
+
+
+
+
+
+
+
+ 4923 result[pos + 1] =
'n';
+
+
+
+
+
+
+
+ 4931 result[pos + 1] =
'r';
+
+
+
+
+
+
+
+ 4939 result[pos + 1] =
't';
+
+
+
+
+
+
+ 4946 if (c >= 0x00 and c <= 0x1f)
+
+
+ 4949 auto hexify = [](
const char v) ->
char
+
+ 4951 return (v < 10) ? (
'0' + v) : (
'a' + v - 10);
+
+
+
+
+ 4956 {
'u',
'0',
'0', hexify(c >> 4), hexify(c & 0x0f)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4994 void dump(std::ostream& o,
+ 4995 const bool pretty_print,
+ 4996 const unsigned int indent_step,
+ 4997 const unsigned int current_indent = 0)
const
+
+
+ 5000 unsigned int new_indent = current_indent;
+
+
+
+
+
+ 5006 if (m_value.object->empty())
+
+
+
+
- 5013 json_value m_value = {};
-
-
-
-
-
- 5030 class primitive_iterator_t
-
-
-
-
-
-
-
-
-
-
-
-
- 5046 bool is_begin()
const
-
- 5048 return (m_it == begin_value);
-
-
-
-
- 5054 return (m_it == end_value);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5074 difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
-
-
- 5084 struct internal_iterator
-
- 5087 typename object_t::iterator object_iterator;
- 5089 typename array_t::iterator array_iterator;
- 5091 primitive_iterator_t primitive_iterator;
-
-
- 5095 : object_iterator(), array_iterator(), primitive_iterator()
-
-
-
-
- 5111 class const_iterator :
public std::iterator<std::random_access_iterator_tag, const basic_json>
-
- 5114 friend class basic_json;
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ 5017 new_indent += indent_step;
+
+
+
+ 5021 for (
auto i = m_value.object->cbegin(); i != m_value.object->cend(); ++i)
+
+ 5023 if (i != m_value.object->cbegin())
+
+ 5025 o << (pretty_print ?
",\n" :
",");
+
+ 5027 o <<
string_t(new_indent,
' ') <<
"\""
+ 5028 << escape_string(i->first) <<
"\":"
+ 5029 << (pretty_print ?
" " :
"");
+ 5030 i->second.dump(o, pretty_print, indent_step, new_indent);
+
+
+
+
+
+ 5036 new_indent -= indent_step;
+
+
+
+ 5040 o <<
string_t(new_indent,
' ') +
"}";
+
+
+
+
+
+ 5046 if (m_value.array->empty())
+
+
+
+
+
+
+
+
+
+
+ 5057 new_indent += indent_step;
+
+
+
+ 5061 for (
auto i = m_value.array->cbegin(); i != m_value.array->cend(); ++i)
+
+ 5063 if (i != m_value.array->cbegin())
+
+ 5065 o << (pretty_print ?
",\n" :
",");
+
+
+ 5068 i->dump(o, pretty_print, indent_step, new_indent);
+
+
+
+
+
+ 5074 new_indent -= indent_step;
+
+
+
+ 5078 o <<
string_t(new_indent,
' ') <<
"]";
+
+
+
+
+
+ 5084 o <<
string_t(
"\"") << escape_string(*m_value.string) <<
"\"";
+
+
+
+
+
+ 5090 o << (m_value.boolean ?
"true" :
"false");
+
+
+
+
+
+ 5096 o << m_value.number_integer;
+
+
+
+
+
+
+
+
+ 5105 o << std::setprecision(std::numeric_limits<number_float_t>::digits10) << m_value.number_float;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 5134 switch (m_object->m_type)
-
-
-
- 5138 m_it.object_iterator =
typename object_t::iterator();
-
-
-
-
-
- 5144 m_it.array_iterator =
typename array_t::iterator();
-
-
-
-
-
- 5150 m_it.primitive_iterator = primitive_iterator_t();
-
-
-
-
-
-
-
- 5159 switch (m_object->m_type)
-
-
-
- 5163 m_it.object_iterator = other.m_it.object_iterator;
-
-
-
-
-
- 5169 m_it.array_iterator = other.m_it.array_iterator;
-
-
-
-
-
- 5175 m_it.primitive_iterator = other.m_it.primitive_iterator;
-
-
-
-
-
-
- 5183 : m_object(other.m_object), m_it(other.m_it)
-
-
-
- 5188 std::is_nothrow_move_constructible<pointer>::value and
- 5189 std::is_nothrow_move_assignable<pointer>::value and
- 5190 std::is_nothrow_move_constructible<internal_iterator>::value and
- 5191 std::is_nothrow_move_assignable<internal_iterator>::value
-
-
- 5194 std::swap(m_object, other.m_object);
- 5195 std::swap(m_it, other.m_it);
-
-
-
-
-
-
- 5203 switch (m_object->m_type)
-
-
-
- 5207 m_it.object_iterator = m_object->m_value.object->begin();
-
-
-
-
-
- 5213 m_it.array_iterator = m_object->m_value.array->begin();
-
-
-
-
-
-
- 5220 m_it.primitive_iterator.set_end();
-
-
-
-
-
- 5226 m_it.primitive_iterator.set_begin();
-
-
-
-
-
-
-
- 5235 switch (m_object->m_type)
-
-
-
- 5239 m_it.object_iterator = m_object->m_value.object->end();
-
-
-
-
-
- 5245 m_it.array_iterator = m_object->m_value.array->end();
-
-
+ 5132 json_value m_value = {};
+
+
+
+
+
+ 5149 class primitive_iterator_t
+
+
+
+
+
+
+
+
+
+
+
+
+ 5165 bool is_begin()
const
+
+ 5167 return (m_it == begin_value);
+
+
+
+
+ 5173 return (m_it == end_value);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5193 difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+
+
+ 5203 struct internal_iterator
+
+ 5206 typename object_t::iterator object_iterator;
+ 5208 typename array_t::iterator array_iterator;
+ 5210 primitive_iterator_t primitive_iterator;
+
+
+ 5214 : object_iterator(), array_iterator(), primitive_iterator()
+
+
+
+
+ 5232 class const_iterator :
public std::iterator<std::random_access_iterator_tag, const basic_json>
+
+ 5235 friend class basic_json;
+
+
+
+
+
+
+
-
-
- 5251 m_it.primitive_iterator.set_end();
-
-
-
-
-
-
-
-
- 5261 switch (m_object->m_type)
-
-
+
+
+
+
+ 5255 switch (m_object->m_type)
+
+
+
+ 5259 m_it.object_iterator =
typename object_t::iterator();
+
+
+
+
- 5265 return m_it.object_iterator->second;
-
-
-
-
- 5270 return *m_it.array_iterator;
-
-
-
-
- 5275 throw std::out_of_range(
"cannot get value");
-
-
-
-
- 5280 if (m_it.primitive_iterator.is_begin())
-
-
-
-
-
- 5286 throw std::out_of_range(
"cannot get value");
-
-
-
-
-
-
-
- 5295 switch (m_object->m_type)
-
-
-
- 5299 return &(m_it.object_iterator->second);
-
+ 5265 m_it.array_iterator =
typename array_t::iterator();
+
+
+
+
+
+ 5271 m_it.primitive_iterator = primitive_iterator_t();
+
+
+
+
+
+
+
+ 5280 switch (m_object->m_type)
+
+
+
+ 5284 m_it.object_iterator = other.m_it.object_iterator;
+
+
+
+
+
+ 5290 m_it.array_iterator = other.m_it.array_iterator;
+
+
+
+
+
+ 5296 m_it.primitive_iterator = other.m_it.primitive_iterator;
+
+
+
+
-
-
- 5304 return &*m_it.array_iterator;
-
+
+ 5304 : m_object(other.m_object), m_it(other.m_it)
+
-
-
- 5309 if (m_it.primitive_iterator.is_begin())
-
-
-
-
-
- 5315 throw std::out_of_range(
"cannot get value");
-
-
-
-
-
-
+
+ 5309 std::is_nothrow_move_constructible<pointer>::value and
+ 5310 std::is_nothrow_move_assignable<pointer>::value and
+ 5311 std::is_nothrow_move_constructible<internal_iterator>::value and
+ 5312 std::is_nothrow_move_assignable<internal_iterator>::value
+
+
+ 5315 std::swap(m_object, other.m_object);
+ 5316 std::swap(m_it, other.m_it);
+
+
+
+
+
- 5324 auto result = *
this;
-
-
-
-
-
-
-
- 5333 switch (m_object->m_type)
-
-
-
- 5337 ++m_it.object_iterator;
-
-
-
-
-
- 5343 ++m_it.array_iterator;
-
-
-
-
-
- 5349 ++m_it.primitive_iterator;
-
-
-
-
-
-
-
-
-
- 5360 auto result = *
this;
-
-
-
-
-
-
-
- 5369 switch (m_object->m_type)
-
-
-
- 5373 --m_it.object_iterator;
-
-
-
-
-
- 5379 --m_it.array_iterator;
-
-
-
-
-
- 5385 --m_it.primitive_iterator;
-
+ 5324 switch (m_object->m_type)
+
+
+
+ 5328 m_it.object_iterator = m_object->m_value.object->begin();
+
+
+
+
+
+ 5334 m_it.array_iterator = m_object->m_value.array->begin();
+
+
+
+
+
+
+ 5341 m_it.primitive_iterator.set_end();
+
+
+
+
+
+ 5347 m_it.primitive_iterator.set_begin();
+
+
+
+
+
+
+
+ 5356 switch (m_object->m_type)
+
+
+
+ 5360 m_it.object_iterator = m_object->m_value.object->end();
+
+
+
+
+
+ 5366 m_it.array_iterator = m_object->m_value.array->end();
+
+
+
+
+
+ 5372 m_it.primitive_iterator.set_end();
+
+
+
+
+
+
+
+
+ 5382 switch (m_object->m_type)
+
+
+
+ 5386 return m_it.object_iterator->second;
-
-
-
-
-
-
-
-
- 5397 if (m_object != other.m_object)
-
- 5399 throw std::domain_error(
"cannot compare iterators of different containers");
-
-
- 5402 switch (m_object->m_type)
-
-
-
- 5406 return (m_it.object_iterator == other.m_it.object_iterator);
-
-
-
-
- 5411 return (m_it.array_iterator == other.m_it.array_iterator);
-
-
-
-
- 5416 return (m_it.primitive_iterator == other.m_it.primitive_iterator);
-
-
-
-
-
-
-
-
-
-
-
-
- 5431 if (m_object != other.m_object)
-
- 5433 throw std::domain_error(
"cannot compare iterators of different containers");
-
-
- 5436 switch (m_object->m_type)
-
-
-
- 5440 throw std::domain_error(
"cannot use operator< for object iterators");
-
-
-
-
- 5445 return (m_it.array_iterator < other.m_it.array_iterator);
-
-
-
-
- 5450 return (m_it.primitive_iterator < other.m_it.primitive_iterator);
-
-
-
-
-
-
- 5458 return not other.operator < (*this);
-
-
-
-
-
+
+
+
+ 5391 return *m_it.array_iterator;
+
+
+
+
+ 5396 throw std::out_of_range(
"cannot get value");
+
+
+
+
+ 5401 return m_it.primitive_iterator.is_begin()
+
+ 5403 :
throw std::out_of_range(
"cannot get value");
+
+
+
+
+
+
+ 5411 switch (m_object->m_type)
+
+
+
+ 5415 return &(m_it.object_iterator->second);
+
+
+
+
+ 5420 return &*m_it.array_iterator;
+
+
+
+
+ 5425 return m_it.primitive_iterator.is_begin()
+
+ 5427 :
throw std::out_of_range(
"cannot get value");
+
+
+
+
+
+
+ 5435 auto result = *
this;
+
+
+
+
+
+
+ 5443 switch (m_object->m_type)
+
+
+
+ 5447 ++m_it.object_iterator;
+
+
+
+
+
+ 5453 ++m_it.array_iterator;
+
+
+
+
+
+ 5459 ++m_it.primitive_iterator;
+
+
+
+
+
-
-
-
-
-
-
-
- 5476 switch (m_object->m_type)
-
-
-
- 5480 throw std::domain_error(
"cannot use operator+= for object iterators");
-
-
-
-
- 5485 m_it.array_iterator += i;
-
-
-
-
-
- 5491 m_it.primitive_iterator += i;
-
-
-
-
-
-
+
+
+ 5470 auto result = *
this;
+
+
+
+
+
+
+ 5478 switch (m_object->m_type)
+
+
+
+ 5482 --m_it.object_iterator;
+
+
+
+
+
+ 5488 --m_it.array_iterator;
+
+
+
+
+
+ 5494 --m_it.primitive_iterator;
+
+
+
-
-
-
-
-
-
-
- 5508 auto result = *
this;
-
-
-
-
-
-
- 5516 auto result = *
this;
-
-
-
-
-
-
- 5524 switch (m_object->m_type)
-
-
-
- 5528 throw std::domain_error(
"cannot use operator- for object iterators");
-
-
-
-
- 5533 return m_it.array_iterator - other.m_it.array_iterator;
-
+
+
+
+
+
+
+ 5506 if (m_object != other.m_object)
+
+ 5508 throw std::domain_error(
"cannot compare iterators of different containers");
+
+
+ 5511 switch (m_object->m_type)
+
+
+
+ 5515 return (m_it.object_iterator == other.m_it.object_iterator);
+
+
+
+
+ 5520 return (m_it.array_iterator == other.m_it.array_iterator);
+
+
+
+
+ 5525 return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+
+
+
+
+
+
+
+
-
-
- 5538 return m_it.primitive_iterator - other.m_it.primitive_iterator;
-
-
-
-
-
-
- 5546 switch (m_object->m_type)
-
-
-
- 5550 throw std::domain_error(
"cannot use operator[] for object iterators");
-
-
-
-
- 5555 return *(m_it.array_iterator + n);
-
-
-
-
- 5560 throw std::out_of_range(
"cannot get value");
-
-
-
-
- 5565 if (m_it.primitive_iterator == -n)
-
-
-
-
-
- 5571 throw std::out_of_range(
"cannot get value");
-
-
-
-
-
- 5578 typename object_t::key_type
key()
const
-
- 5580 if (m_object->is_object())
-
- 5582 return m_it.object_iterator->first;
-
-
-
- 5586 throw std::domain_error(
"cannot use key() for non-object iterators");
-
-
-
-
-
-
-
-
-
-
- 5600 internal_iterator m_it = internal_iterator();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5634 std::is_nothrow_move_constructible<pointer>::value and
- 5635 std::is_nothrow_move_assignable<pointer>::value and
- 5636 std::is_nothrow_move_constructible<internal_iterator>::value and
- 5637 std::is_nothrow_move_assignable<internal_iterator>::value
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5703 auto result = *
this;
-
-
-
-
-
-
- 5711 auto result = *
this;
-
-
-
-
-
-
-
-
+
+
+
+ 5540 if (m_object != other.m_object)
+
+ 5542 throw std::domain_error(
"cannot compare iterators of different containers");
+
+
+ 5545 switch (m_object->m_type)
+
+
+
+ 5549 throw std::domain_error(
"cannot use operator< for object iterators");
+
+
+
+
+ 5554 return (m_it.array_iterator < other.m_it.array_iterator);
+
+
+
+
+ 5559 return (m_it.primitive_iterator < other.m_it.primitive_iterator);
+
+
+
+
+
+
+ 5567 return not other.operator < (*this);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5585 switch (m_object->m_type)
+
+
+
+ 5589 throw std::domain_error(
"cannot use operator+= for object iterators");
+
+
+
+
+ 5594 m_it.array_iterator += i;
+
+
+
+
+
+ 5600 m_it.primitive_iterator += i;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5617 auto result = *
this;
+
+
+
+
+
+
+ 5625 auto result = *
this;
+
+
+
+
+
+
+ 5633 switch (m_object->m_type)
+
+
+
+ 5637 throw std::domain_error(
"cannot use operator- for object iterators");
+
+
+
+
+ 5642 return m_it.array_iterator - other.m_it.array_iterator;
+
+
+
+
+ 5647 return m_it.primitive_iterator - other.m_it.primitive_iterator;
+
+
+
+
+
+
+ 5655 switch (m_object->m_type)
+
+
+
+ 5659 throw std::domain_error(
"cannot use operator[] for object iterators");
+
+
+
+
+ 5664 return *(m_it.array_iterator + n);
+
+
+
+
+ 5669 throw std::out_of_range(
"cannot get value");
+
+
+
+
+ 5674 return (m_it.primitive_iterator == -n)
+
+ 5676 :
throw std::out_of_range(
"cannot get value");
+
+
+
+
+ 5682 typename object_t::key_type
key()
const
+
+ 5684 return m_object->is_object()
+ 5685 ? m_it.object_iterator->first
+ 5686 :
throw std::domain_error(
"cannot use key() for non-object iterators");
+
+
+
+
+
+
+
+
+
+ 5699 internal_iterator m_it = internal_iterator();
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- 5749 template<
typename Base>
- 5750 class json_reverse_iterator :
public std::reverse_iterator<Base>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 5735 std::is_nothrow_move_constructible<pointer>::value and
+ 5736 std::is_nothrow_move_assignable<pointer>::value and
+ 5737 std::is_nothrow_move_constructible<internal_iterator>::value and
+ 5738 std::is_nothrow_move_assignable<internal_iterator>::value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
- 5768 return base_iterator::operator++(1);
-
-
-
-
- 5774 base_iterator::operator++();
-
-
-
-
-
- 5781 return base_iterator::operator--(1);
-
-
-
-
- 5787 base_iterator::operator--();
-
-
-
-
-
- 5794 base_iterator::operator+=(i);
-
-
-
-
-
- 5801 auto result = *
this;
-
-
-
-
-
-
- 5809 auto result = *
this;
-
-
-
-
-
-
- 5817 return this->base() - other.base();
-
-
-
-
-
-
-
- 5827 typename object_t::key_type
key()
const
-
- 5829 auto it = --this->base();
-
-
-
-
-
- 5836 auto it = --this->base();
- 5837 return it.operator * ();
-
-
-
-
-
-
- 5852 basic_json& container;
- 5854 using json_iterator = decltype(std::begin(container));
-
- 5857 class iterator_wrapper_internal
-
-
- 5861 json_iterator anchor;
- 5863 size_t array_index = 0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5804 auto result = *
this;
+
+
+
+
+
+
+ 5812 auto result = *
this;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5852 template<
typename Base>
+ 5853 class json_reverse_iterator :
public std::reverse_iterator<Base>
+
+
+
+
+
+
+
-
- 5867 iterator_wrapper_internal(json_iterator i) : anchor(i)
-
-
- 5871 iterator_wrapper_internal& operator*()
-
-
-
-
- 5877 iterator_wrapper_internal& operator++()
-
-
-
-
-
-
-
- 5886 bool operator!= (
const iterator_wrapper_internal& o)
-
- 5888 return anchor != o.anchor;
-
-
-
-
- 5894 switch (anchor.m_object->type())
-
-
-
- 5899 return std::to_string(array_index);
-
-
-
-
- 5905 return anchor.key();
-
-
-
-
-
-
-
-
-
- 5917 typename json_iterator::reference
value()
const
-
- 5919 return anchor.value();
-
-
+
+
+
+
+ 5871 return base_iterator::operator++(1);
+
+
+
+
+ 5877 base_iterator::operator++();
+
+
+
+
+
+ 5884 return base_iterator::operator--(1);
+
+
+
+
+ 5890 base_iterator::operator--();
+
+
+
+
+
+ 5897 base_iterator::operator+=(i);
+
+
+
+
+
+ 5904 auto result = *
this;
+
+
+
+
+
+
+ 5912 auto result = *
this;
+
+
+
+
+
+
+ 5920 return this->base() - other.base();
+
-
-
-
-
+
+
+
+
-
-
- 5932 return iterator_wrapper_internal(container.
begin());
-
-
- 5936 iterator_wrapper_internal
end()
-
- 5938 return iterator_wrapper_internal(container.
end());
-
-
-
-
-
-
-
-
-
- 5958 enum class token_type
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5977 using lexer_char_t =
unsigned char;
+ 5930 typename object_t::key_type
key()
const
+
+ 5932 auto it = --this->base();
+
+
+
+
+
+ 5939 auto it = --this->base();
+ 5940 return it.operator * ();
+
+
+
+
+
+
+ 5955 basic_json& container;
+ 5957 using json_iterator = decltype(std::begin(container));
+
+ 5960 class iterator_wrapper_internal
+
+
+ 5964 json_iterator anchor;
+ 5966 size_t array_index = 0;
+
+
+ 5970 iterator_wrapper_internal(json_iterator i) : anchor(i)
+
+
+ 5974 iterator_wrapper_internal& operator*()
+
+
+
- 5980 explicit lexer(
const string_t& s) noexcept
- 5981 : m_stream(
nullptr), m_buffer(s)
-
- 5983 m_content =
reinterpret_cast<const lexer_char_t*
>(s.c_str());
- 5984 m_start = m_cursor = m_content;
- 5985 m_limit = m_content + s.size();
-
- 5987 explicit lexer(std::istream* s) noexcept
- 5988 : m_stream(s), m_buffer()
-
- 5990 getline(*m_stream, m_buffer);
- 5991 m_content =
reinterpret_cast<const lexer_char_t*
>(m_buffer.c_str());
- 5992 m_start = m_cursor = m_content;
- 5993 m_limit = m_content + m_buffer.size();
-
-
-
-
-
- 6000 lexer(
const lexer&) =
delete;
-
-
- 6014 static string_t to_unicode(
const std::size_t codepoint1,
- 6015 const std::size_t codepoint2 = 0)
-
-
+ 5980 iterator_wrapper_internal& operator++()
+
+
+
+
+
+
+
+ 5989 bool operator!= (
const iterator_wrapper_internal& o)
+
+ 5991 return anchor != o.anchor;
+
+
+
+
+ 5997 switch (anchor.m_object->type())
+
+
+
+
+ 6002 return std::to_string(array_index);
+
+
+
+
+
+ 6008 return anchor.key();
+
+
+
+
+
+
+
+
+
-
- 6020 std::size_t codepoint = codepoint1;
-
-
- 6023 if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
-
-
- 6026 if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6040 throw std::invalid_argument(
"missing or wrong low surrogate");
-
-
-
- 6044 if (codepoint < 0x80)
-
-
- 6047 result.append(1, static_cast<typename string_t::value_type>(codepoint));
-
- 6049 else if (codepoint <= 0x7ff)
-
-
- 6052 result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
- 6053 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-
- 6055 else if (codepoint <= 0xffff)
-
-
- 6058 result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
- 6059 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
- 6060 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-
- 6062 else if (codepoint <= 0x10ffff)
-
-
- 6065 result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
- 6066 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
- 6067 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
- 6068 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-
-
-
- 6072 throw std::out_of_range(
"code points above 0x10FFFF are invalid");
-
-
-
-
-
- 6079 static std::string token_type_name(token_type t)
-
-
-
- 6083 case token_type::uninitialized:
- 6084 return "<uninitialized>";
- 6085 case token_type::literal_true:
- 6086 return "true literal";
- 6087 case token_type::literal_false:
- 6088 return "false literal";
- 6089 case token_type::literal_null:
- 6090 return "null literal";
- 6091 case token_type::value_string:
- 6092 return "string literal";
- 6093 case token_type::value_number:
- 6094 return "number literal";
- 6095 case token_type::begin_array:
-
- 6097 case token_type::begin_object:
-
- 6099 case token_type::end_array:
-
- 6101 case token_type::end_object:
-
- 6103 case token_type::name_separator:
-
- 6105 case token_type::value_separator:
-
- 6107 case token_type::end_of_input:
- 6108 return "<end of input>";
- 6109 case token_type::parse_error:
- 6110 return "<parse error>";
-
-
-
- 6124 token_type scan() noexcept
-
-
-
-
-
-
-
-
-
-
- 6135 unsigned int yyaccept = 0;
- 6136 static const unsigned char yybm[] =
-
- 6138 0, 0, 0, 0, 0, 0, 0, 0,
- 6139 0, 32, 32, 0, 0, 32, 0, 0,
- 6140 64, 64, 64, 64, 64, 64, 64, 64,
- 6141 64, 64, 64, 64, 64, 64, 64, 64,
- 6142 96, 64, 0, 64, 64, 64, 64, 64,
- 6143 64, 64, 64, 64, 64, 64, 64, 64,
- 6144 192, 192, 192, 192, 192, 192, 192, 192,
- 6145 192, 192, 64, 64, 64, 64, 64, 64,
- 6146 64, 64, 64, 64, 64, 64, 64, 64,
- 6147 64, 64, 64, 64, 64, 64, 64, 64,
- 6148 64, 64, 64, 64, 64, 64, 64, 64,
- 6149 64, 64, 64, 64, 0, 64, 64, 64,
- 6150 64, 64, 64, 64, 64, 64, 64, 64,
- 6151 64, 64, 64, 64, 64, 64, 64, 64,
- 6152 64, 64, 64, 64, 64, 64, 64, 64,
- 6153 64, 64, 64, 64, 64, 64, 64, 64,
- 6154 64, 64, 64, 64, 64, 64, 64, 64,
- 6155 64, 64, 64, 64, 64, 64, 64, 64,
- 6156 64, 64, 64, 64, 64, 64, 64, 64,
- 6157 64, 64, 64, 64, 64, 64, 64, 64,
- 6158 64, 64, 64, 64, 64, 64, 64, 64,
- 6159 64, 64, 64, 64, 64, 64, 64, 64,
- 6160 64, 64, 64, 64, 64, 64, 64, 64,
- 6161 64, 64, 64, 64, 64, 64, 64, 64,
- 6162 64, 64, 64, 64, 64, 64, 64, 64,
- 6163 64, 64, 64, 64, 64, 64, 64, 64,
- 6164 64, 64, 64, 64, 64, 64, 64, 64,
- 6165 64, 64, 64, 64, 64, 64, 64, 64,
- 6166 64, 64, 64, 64, 64, 64, 64, 64,
- 6167 64, 64, 64, 64, 64, 64, 64, 64,
- 6168 64, 64, 64, 64, 64, 64, 64, 64,
- 6169 64, 64, 64, 64, 64, 64, 64, 64,
-
- 6171 if ((m_limit - m_cursor) < 5)
-
-
-
-
-
-
-
-
-
-
-
-
- 6184 goto basic_json_parser_28;
-
-
-
- 6188 goto basic_json_parser_30;
-
-
-
- 6192 goto basic_json_parser_4;
-
-
-
-
-
-
- 6199 goto basic_json_parser_2;
-
-
-
- 6203 goto basic_json_parser_30;
-
-
-
-
-
-
-
-
-
- 6213 goto basic_json_parser_27;
-
-
-
- 6217 goto basic_json_parser_30;
-
- 6219 goto basic_json_parser_16;
-
-
-
-
-
-
-
- 6227 goto basic_json_parser_23;
-
- 6229 goto basic_json_parser_30;
-
-
-
-
-
- 6235 goto basic_json_parser_24;
-
-
-
- 6239 goto basic_json_parser_26;
-
- 6241 goto basic_json_parser_18;
-
-
-
-
-
-
-
-
-
-
-
-
- 6254 goto basic_json_parser_8;
-
-
-
- 6258 goto basic_json_parser_30;
-
- 6260 goto basic_json_parser_10;
-
-
-
-
-
- 6266 goto basic_json_parser_22;
-
-
-
- 6270 goto basic_json_parser_30;
-
- 6272 goto basic_json_parser_20;
-
-
-
-
-
-
-
-
- 6281 goto basic_json_parser_21;
-
-
-
- 6285 goto basic_json_parser_30;
-
- 6287 goto basic_json_parser_12;
-
-
-
-
-
-
-
- 6295 goto basic_json_parser_30;
-
- 6297 goto basic_json_parser_14;
-
-
-
-
-
- 6303 goto basic_json_parser_6;
-
- 6305 goto basic_json_parser_30;
-
-
-
-
- 6310 basic_json_parser_2:
-
-
- 6313 goto basic_json_parser_5;
- 6314 basic_json_parser_3:
-
-
-
- 6318 basic_json_parser_4:
-
- 6320 if (m_limit <= m_cursor)
-
-
-
-
- 6325 basic_json_parser_5:
- 6326 if (yybm[0 + yych] & 32)
-
- 6328 goto basic_json_parser_4;
-
- 6330 goto basic_json_parser_3;
- 6331 basic_json_parser_6:
-
- 6333 yych = *(m_marker = ++m_cursor);
-
-
- 6336 goto basic_json_parser_64;
-
- 6338 basic_json_parser_7:
-
- 6340 return token_type::parse_error;
-
- 6342 basic_json_parser_8:
-
-
- 6345 return token_type::begin_array;
-
- 6347 basic_json_parser_10:
-
-
- 6350 return token_type::end_array;
-
- 6352 basic_json_parser_12:
-
-
- 6355 return token_type::begin_object;
-
- 6357 basic_json_parser_14:
-
-
- 6360 return token_type::end_object;
-
- 6362 basic_json_parser_16:
-
-
- 6365 return token_type::value_separator;
-
- 6367 basic_json_parser_18:
-
-
- 6370 return token_type::name_separator;
-
- 6372 basic_json_parser_20:
-
- 6374 yych = *(m_marker = ++m_cursor);
-
-
- 6377 goto basic_json_parser_60;
-
- 6379 goto basic_json_parser_7;
- 6380 basic_json_parser_21:
-
- 6382 yych = *(m_marker = ++m_cursor);
-
-
- 6385 goto basic_json_parser_56;
-
- 6387 goto basic_json_parser_7;
- 6388 basic_json_parser_22:
-
- 6390 yych = *(m_marker = ++m_cursor);
-
-
- 6393 goto basic_json_parser_51;
-
- 6395 goto basic_json_parser_7;
- 6396 basic_json_parser_23:
-
-
-
- 6400 goto basic_json_parser_7;
-
-
-
- 6404 goto basic_json_parser_50;
-
-
-
- 6408 goto basic_json_parser_41;
-
- 6410 goto basic_json_parser_7;
- 6411 basic_json_parser_24:
-
- 6413 yych = *(m_marker = ++m_cursor);
-
-
-
-
- 6418 goto basic_json_parser_43;
-
+ 6020 typename json_iterator::reference
value()
const
+
+ 6022 return anchor.value();
+
+
+
+
+
+
+
+
+
+
+ 6035 return iterator_wrapper_internal(container.
begin());
+
+
+ 6039 iterator_wrapper_internal
end()
+
+ 6041 return iterator_wrapper_internal(container.
end());
+
+
+
+
+
+
+
+
+
+ 6061 enum class token_type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6080 using lexer_char_t =
unsigned char;
+
+ 6083 explicit lexer(
const string_t& s) noexcept
+ 6084 : m_stream(
nullptr), m_buffer(s)
+
+ 6086 m_content =
reinterpret_cast<const lexer_char_t*
>(s.c_str());
+ 6087 m_start = m_cursor = m_content;
+ 6088 m_limit = m_content + s.size();
+
+ 6090 explicit lexer(std::istream* s) noexcept
+ 6091 : m_stream(s), m_buffer()
+
+ 6093 getline(*m_stream, m_buffer);
+ 6094 m_content =
reinterpret_cast<const lexer_char_t*
>(m_buffer.c_str());
+ 6095 m_start = m_cursor = m_content;
+ 6096 m_limit = m_content + m_buffer.size();
+
+
+
+
+
+ 6103 lexer(
const lexer&) =
delete;
+
+
+ 6117 static string_t to_unicode(
const std::size_t codepoint1,
+ 6118 const std::size_t codepoint2 = 0)
+
+
+
+
+ 6123 std::size_t codepoint = codepoint1;
+
+
+ 6126 if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+
+
+ 6129 if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6143 throw std::invalid_argument(
"missing or wrong low surrogate");
+
+
+
+ 6147 if (codepoint < 0x80)
+
+
+ 6150 result.append(1, static_cast<typename string_t::value_type>(codepoint));
+
+ 6152 else if (codepoint <= 0x7ff)
+
+
+ 6155 result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+ 6156 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+
+ 6158 else if (codepoint <= 0xffff)
+
+
+ 6161 result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+ 6162 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+ 6163 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+
+ 6165 else if (codepoint <= 0x10ffff)
+
+
+ 6168 result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+ 6169 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+ 6170 result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+ 6171 result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+
+
+
+ 6175 throw std::out_of_range(
"code points above 0x10FFFF are invalid");
+
+
+
+
+
+ 6182 static std::string token_type_name(token_type t)
+
+
+
+ 6186 case token_type::uninitialized:
+ 6187 return "<uninitialized>";
+ 6188 case token_type::literal_true:
+ 6189 return "true literal";
+ 6190 case token_type::literal_false:
+ 6191 return "false literal";
+ 6192 case token_type::literal_null:
+ 6193 return "null literal";
+ 6194 case token_type::value_string:
+ 6195 return "string literal";
+ 6196 case token_type::value_number:
+ 6197 return "number literal";
+ 6198 case token_type::begin_array:
+
+ 6200 case token_type::begin_object:
+
+ 6202 case token_type::end_array:
+
+ 6204 case token_type::end_object:
+
+ 6206 case token_type::name_separator:
+
+ 6208 case token_type::value_separator:
+
+ 6210 case token_type::end_of_input:
+ 6211 return "<end of input>";
+ 6212 case token_type::parse_error:
+ 6213 return "<parse error>";
+
+
+
+ 6227 token_type scan() noexcept
+
+
+
+
+
+
+
+
+
+
+ 6238 unsigned int yyaccept = 0;
+ 6239 static const unsigned char yybm[] =
+
+ 6241 0, 0, 0, 0, 0, 0, 0, 0,
+ 6242 0, 32, 32, 0, 0, 32, 0, 0,
+ 6243 64, 64, 64, 64, 64, 64, 64, 64,
+ 6244 64, 64, 64, 64, 64, 64, 64, 64,
+ 6245 96, 64, 0, 64, 64, 64, 64, 64,
+ 6246 64, 64, 64, 64, 64, 64, 64, 64,
+ 6247 192, 192, 192, 192, 192, 192, 192, 192,
+ 6248 192, 192, 64, 64, 64, 64, 64, 64,
+ 6249 64, 64, 64, 64, 64, 64, 64, 64,
+ 6250 64, 64, 64, 64, 64, 64, 64, 64,
+ 6251 64, 64, 64, 64, 64, 64, 64, 64,
+ 6252 64, 64, 64, 64, 0, 64, 64, 64,
+ 6253 64, 64, 64, 64, 64, 64, 64, 64,
+ 6254 64, 64, 64, 64, 64, 64, 64, 64,
+ 6255 64, 64, 64, 64, 64, 64, 64, 64,
+ 6256 64, 64, 64, 64, 64, 64, 64, 64,
+ 6257 64, 64, 64, 64, 64, 64, 64, 64,
+ 6258 64, 64, 64, 64, 64, 64, 64, 64,
+ 6259 64, 64, 64, 64, 64, 64, 64, 64,
+ 6260 64, 64, 64, 64, 64, 64, 64, 64,
+ 6261 64, 64, 64, 64, 64, 64, 64, 64,
+ 6262 64, 64, 64, 64, 64, 64, 64, 64,
+ 6263 64, 64, 64, 64, 64, 64, 64, 64,
+ 6264 64, 64, 64, 64, 64, 64, 64, 64,
+ 6265 64, 64, 64, 64, 64, 64, 64, 64,
+ 6266 64, 64, 64, 64, 64, 64, 64, 64,
+ 6267 64, 64, 64, 64, 64, 64, 64, 64,
+ 6268 64, 64, 64, 64, 64, 64, 64, 64,
+ 6269 64, 64, 64, 64, 64, 64, 64, 64,
+ 6270 64, 64, 64, 64, 64, 64, 64, 64,
+ 6271 64, 64, 64, 64, 64, 64, 64, 64,
+ 6272 64, 64, 64, 64, 64, 64, 64, 64,
+
+ 6274 if ((m_limit - m_cursor) < 5)
+
+
+
+
+
+
+
+
+
+
+
+
+ 6287 goto basic_json_parser_28;
+
+
+
+ 6291 goto basic_json_parser_30;
+
+
+
+ 6295 goto basic_json_parser_4;
+
+
+
+
+
+
+ 6302 goto basic_json_parser_2;
+
+
+
+ 6306 goto basic_json_parser_30;
+
+
+
+
+
+
+
+
+
+ 6316 goto basic_json_parser_27;
+
+
+
+ 6320 goto basic_json_parser_30;
+
+ 6322 goto basic_json_parser_16;
+
+
+
+
+
+
+
+ 6330 goto basic_json_parser_23;
+
+ 6332 goto basic_json_parser_30;
+
+
+
+
+
+ 6338 goto basic_json_parser_24;
+
+
+
+ 6342 goto basic_json_parser_26;
+
+ 6344 goto basic_json_parser_18;
+
+
+
+
+
+
+
+
+
+
+
+
+ 6357 goto basic_json_parser_8;
+
+
+
+ 6361 goto basic_json_parser_30;
+
+ 6363 goto basic_json_parser_10;
+
+
+
+
+
+ 6369 goto basic_json_parser_22;
+
+
+
+ 6373 goto basic_json_parser_30;
+
+ 6375 goto basic_json_parser_20;
+
+
+
+
+
+
+
+
+ 6384 goto basic_json_parser_21;
+
+
+
+ 6388 goto basic_json_parser_30;
+
+ 6390 goto basic_json_parser_12;
+
+
+
+
+
+
+
+ 6398 goto basic_json_parser_30;
+
+ 6400 goto basic_json_parser_14;
+
+
+
+
+
+ 6406 goto basic_json_parser_6;
+
+ 6408 goto basic_json_parser_30;
+
+
+
+
+ 6413 basic_json_parser_2:
+
+
+ 6416 goto basic_json_parser_5;
+ 6417 basic_json_parser_3:
+
+
-
-
-
-
- 6425 goto basic_json_parser_44;
-
-
-
- 6429 goto basic_json_parser_44;
-
-
- 6432 basic_json_parser_25:
-
- 6434 return token_type::value_number;
-
- 6436 basic_json_parser_26:
-
- 6438 yych = *(m_marker = ++m_cursor);
- 6439 goto basic_json_parser_42;
- 6440 basic_json_parser_27:
-
- 6442 yych = *(m_marker = ++m_cursor);
-
-
- 6445 goto basic_json_parser_7;
-
- 6447 goto basic_json_parser_32;
- 6448 basic_json_parser_28:
-
-
- 6451 return token_type::end_of_input;
-
- 6453 basic_json_parser_30:
-
- 6455 goto basic_json_parser_7;
- 6456 basic_json_parser_31:
-
- 6458 if (m_limit <= m_cursor)
-
-
-
-
- 6463 basic_json_parser_32:
- 6464 if (yybm[0 + yych] & 64)
-
- 6466 goto basic_json_parser_31;
-
-
-
- 6470 goto basic_json_parser_33;
-
-
-
- 6474 goto basic_json_parser_35;
-
- 6476 goto basic_json_parser_34;
- 6477 basic_json_parser_33:
- 6478 m_cursor = m_marker;
-
-
- 6481 goto basic_json_parser_7;
-
-
-
- 6485 goto basic_json_parser_25;
-
- 6487 basic_json_parser_34:
-
- 6489 if (m_limit <= m_cursor)
-
-
-
-
-
+ 6421 basic_json_parser_4:
+
+ 6423 if (m_limit <= m_cursor)
+
+
+
+
+ 6428 basic_json_parser_5:
+ 6429 if (yybm[0 + yych] & 32)
+
+ 6431 goto basic_json_parser_4;
+
+ 6433 goto basic_json_parser_3;
+ 6434 basic_json_parser_6:
+
+ 6436 yych = *(m_marker = ++m_cursor);
+
+
+ 6439 goto basic_json_parser_64;
+
+ 6441 basic_json_parser_7:
+
+ 6443 return token_type::parse_error;
+
+ 6445 basic_json_parser_8:
+
+
+ 6448 return token_type::begin_array;
+
+ 6450 basic_json_parser_10:
+
+
+ 6453 return token_type::end_array;
+
+ 6455 basic_json_parser_12:
+
+
+ 6458 return token_type::begin_object;
+
+ 6460 basic_json_parser_14:
+
+
+ 6463 return token_type::end_object;
+
+ 6465 basic_json_parser_16:
+
+
+ 6468 return token_type::value_separator;
+
+ 6470 basic_json_parser_18:
+
+
+ 6473 return token_type::name_separator;
+
+ 6475 basic_json_parser_20:
+
+ 6477 yych = *(m_marker = ++m_cursor);
+
+
+ 6480 goto basic_json_parser_60;
+
+ 6482 goto basic_json_parser_7;
+ 6483 basic_json_parser_21:
+
+ 6485 yych = *(m_marker = ++m_cursor);
+
+
+ 6488 goto basic_json_parser_56;
+
+ 6490 goto basic_json_parser_7;
+ 6491 basic_json_parser_22:
+
+ 6493 yych = *(m_marker = ++m_cursor);
+
-
-
-
-
- 6500 goto basic_json_parser_31;
-
-
-
- 6504 goto basic_json_parser_33;
-
- 6506 goto basic_json_parser_31;
-
-
-
-
-
-
-
- 6514 goto basic_json_parser_33;
-
- 6516 goto basic_json_parser_31;
-
-
-
-
-
- 6522 goto basic_json_parser_31;
-
- 6524 goto basic_json_parser_33;
-
-
-
-
-
-
+ 6496 goto basic_json_parser_51;
+
+ 6498 goto basic_json_parser_7;
+ 6499 basic_json_parser_23:
+
+
+
+ 6503 goto basic_json_parser_7;
+
+
+
+ 6507 goto basic_json_parser_50;
+
+
+
+ 6511 goto basic_json_parser_41;
+
+ 6513 goto basic_json_parser_7;
+ 6514 basic_json_parser_24:
+
+ 6516 yych = *(m_marker = ++m_cursor);
+
+
+
+
+ 6521 goto basic_json_parser_43;
+
+
+
+
+
+
+ 6528 goto basic_json_parser_44;
+
+
-
-
- 6534 goto basic_json_parser_31;
-
-
-
- 6538 goto basic_json_parser_31;
-
- 6540 goto basic_json_parser_33;
-
-
-
-
-
-
-
- 6548 goto basic_json_parser_31;
-
- 6550 goto basic_json_parser_33;
-
-
-
-
-
- 6556 goto basic_json_parser_31;
-
-
-
- 6560 goto basic_json_parser_37;
-
- 6562 goto basic_json_parser_33;
-
-
-
- 6566 basic_json_parser_35:
-
+ 6532 goto basic_json_parser_44;
+
+
+ 6535 basic_json_parser_25:
+
+ 6537 return token_type::value_number;
+
+ 6539 basic_json_parser_26:
+
+ 6541 yych = *(m_marker = ++m_cursor);
+ 6542 goto basic_json_parser_42;
+ 6543 basic_json_parser_27:
+
+ 6545 yych = *(m_marker = ++m_cursor);
+
+
+ 6548 goto basic_json_parser_7;
+
+ 6550 goto basic_json_parser_32;
+ 6551 basic_json_parser_28:
+
+
+ 6554 return token_type::end_of_input;
+
+ 6556 basic_json_parser_30:
+
+ 6558 goto basic_json_parser_7;
+ 6559 basic_json_parser_31:
+
+ 6561 if (m_limit <= m_cursor)
+
+
+
+
+ 6566 basic_json_parser_32:
+ 6567 if (yybm[0 + yych] & 64)
- 6569 return token_type::value_string;
+ 6569 goto basic_json_parser_31;
- 6571 basic_json_parser_37:
-
- 6573 if (m_limit <= m_cursor)
-
-
-
-
-
-
-
-
- 6582 goto basic_json_parser_33;
-
-
-
- 6586 goto basic_json_parser_33;
-
-
-
-
-
-
- 6593 goto basic_json_parser_38;
-
-
-
- 6597 goto basic_json_parser_33;
-
-
+
+
+ 6573 goto basic_json_parser_33;
+
+
+
+ 6577 goto basic_json_parser_35;
+
+ 6579 goto basic_json_parser_34;
+ 6580 basic_json_parser_33:
+ 6581 m_cursor = m_marker;
+
+
+ 6584 goto basic_json_parser_7;
+
+
+
+ 6588 goto basic_json_parser_25;
+
+ 6590 basic_json_parser_34:
+
+ 6592 if (m_limit <= m_cursor)
+
+
+
+
+
+
+
- 6601 goto basic_json_parser_33;
-
-
- 6604 basic_json_parser_38:
-
- 6606 if (m_limit <= m_cursor)
-
-
-
-
-
-
-
-
- 6615 goto basic_json_parser_33;
-
-
-
- 6619 goto basic_json_parser_33;
-
-
-
-
-
-
- 6626 goto basic_json_parser_39;
-
-
-
- 6630 goto basic_json_parser_33;
-
-
-
- 6634 goto basic_json_parser_33;
-
-
- 6637 basic_json_parser_39:
-
- 6639 if (m_limit <= m_cursor)
-
-
-
-
-
-
-
-
- 6648 goto basic_json_parser_33;
-
-
-
- 6652 goto basic_json_parser_33;
-
-
-
-
-
-
- 6659 goto basic_json_parser_40;
-
-
-
- 6663 goto basic_json_parser_33;
-
-
-
- 6667 goto basic_json_parser_33;
-
-
- 6670 basic_json_parser_40:
-
- 6672 if (m_limit <= m_cursor)
-
-
-
-
-
-
-
-
- 6681 goto basic_json_parser_33;
-
-
+
+
+ 6603 goto basic_json_parser_31;
+
+
+
+ 6607 goto basic_json_parser_33;
+
+ 6609 goto basic_json_parser_31;
+
+
+
+
+
+
+
+ 6617 goto basic_json_parser_33;
+
+ 6619 goto basic_json_parser_31;
+
+
+
+
+
+ 6625 goto basic_json_parser_31;
+
+ 6627 goto basic_json_parser_33;
+
+
+
+
+
+
+
+
+
+ 6637 goto basic_json_parser_31;
+
+
+
+ 6641 goto basic_json_parser_31;
+
+ 6643 goto basic_json_parser_33;
+
+
+
+
+
+
+
+ 6651 goto basic_json_parser_31;
+
+ 6653 goto basic_json_parser_33;
+
+
+
+
+
+ 6659 goto basic_json_parser_31;
+
+
+
+ 6663 goto basic_json_parser_37;
+
+ 6665 goto basic_json_parser_33;
+
+
+
+ 6669 basic_json_parser_35:
+
+
+ 6672 return token_type::value_string;
+
+ 6674 basic_json_parser_37:
+
+ 6676 if (m_limit <= m_cursor)
+
+
+
+
+
+
+
- 6685 goto basic_json_parser_31;
+ 6685 goto basic_json_parser_33;
- 6687 goto basic_json_parser_33;
-
-
-
-
-
- 6693 goto basic_json_parser_31;
-
-
-
- 6697 goto basic_json_parser_33;
-
-
-
- 6701 goto basic_json_parser_31;
-
- 6703 goto basic_json_parser_33;
-
- 6705 basic_json_parser_41:
-
- 6707 m_marker = ++m_cursor;
- 6708 if ((m_limit - m_cursor) < 3)
-
-
-
-
- 6713 basic_json_parser_42:
- 6714 if (yybm[0 + yych] & 128)
+
+
+ 6689 goto basic_json_parser_33;
+
+
+
+
+
+
+ 6696 goto basic_json_parser_38;
+
+
+
+ 6700 goto basic_json_parser_33;
+
+
+
+ 6704 goto basic_json_parser_33;
+
+
+ 6707 basic_json_parser_38:
+
+ 6709 if (m_limit <= m_cursor)
+
+
+
+
+
- 6716 goto basic_json_parser_41;
-
-
-
-
+
+
+ 6718 goto basic_json_parser_33;
+
+
- 6722 goto basic_json_parser_25;
+ 6722 goto basic_json_parser_33;
-
+
- 6729 goto basic_json_parser_44;
+ 6729 goto basic_json_parser_39;
-
+
- 6733 goto basic_json_parser_44;
+ 6733 goto basic_json_parser_33;
- 6735 goto basic_json_parser_25;
-
- 6737 basic_json_parser_43:
-
-
-
- 6741 goto basic_json_parser_33;
-
-
-
- 6745 goto basic_json_parser_48;
-
- 6747 goto basic_json_parser_33;
- 6748 basic_json_parser_44:
-
-
-
-
-
- 6754 goto basic_json_parser_33;
-
-
-
-
-
-
- 6761 goto basic_json_parser_45;
-
-
-
- 6765 goto basic_json_parser_33;
-
-
-
- 6769 goto basic_json_parser_46;
-
- 6771 goto basic_json_parser_33;
+
+
+ 6737 goto basic_json_parser_33;
+
+
+ 6740 basic_json_parser_39:
+
+ 6742 if (m_limit <= m_cursor)
+
+
+
+
+
+
+
+
+ 6751 goto basic_json_parser_33;
+
+
+
+ 6755 goto basic_json_parser_33;
+
+
+
+
+
+
+ 6762 goto basic_json_parser_40;
+
+
+
+ 6766 goto basic_json_parser_33;
+
+
+
+ 6770 goto basic_json_parser_33;
+
- 6773 basic_json_parser_45:
-
-
+ 6773 basic_json_parser_40:
+
+ 6775 if (m_limit <= m_cursor)
- 6777 goto basic_json_parser_33;
+
-
-
- 6781 goto basic_json_parser_33;
-
- 6783 basic_json_parser_46:
-
- 6785 if (m_limit <= m_cursor)
-
-
-
-
-
-
- 6792 goto basic_json_parser_25;
-
-
-
- 6796 goto basic_json_parser_46;
-
- 6798 goto basic_json_parser_25;
- 6799 basic_json_parser_48:
-
- 6801 m_marker = ++m_cursor;
- 6802 if ((m_limit - m_cursor) < 3)
-
-
-
-
-
-
-
-
- 6811 goto basic_json_parser_25;
-
-
-
- 6815 goto basic_json_parser_48;
-
- 6817 goto basic_json_parser_25;
-
-
-
-
-
- 6823 goto basic_json_parser_44;
-
-
-
- 6827 goto basic_json_parser_44;
-
- 6829 goto basic_json_parser_25;
-
- 6831 basic_json_parser_50:
-
- 6833 yych = *(m_marker = ++m_cursor);
-
-
-
-
- 6838 goto basic_json_parser_43;
-
- 6840 goto basic_json_parser_25;
-
-
+
+
+
+
+
+ 6784 goto basic_json_parser_33;
+
+
+
+ 6788 goto basic_json_parser_31;
+
+ 6790 goto basic_json_parser_33;
+
+
+
+
+
+ 6796 goto basic_json_parser_31;
+
+
+
+ 6800 goto basic_json_parser_33;
+
+
+
+ 6804 goto basic_json_parser_31;
+
+ 6806 goto basic_json_parser_33;
+
+ 6808 basic_json_parser_41:
+
+ 6810 m_marker = ++m_cursor;
+ 6811 if ((m_limit - m_cursor) < 3)
+
+
+
+
+ 6816 basic_json_parser_42:
+ 6817 if (yybm[0 + yych] & 128)
+
+ 6819 goto basic_json_parser_41;
+
+
+
+
+
+ 6825 goto basic_json_parser_25;
+
+
+
+
+
+
+ 6832 goto basic_json_parser_44;
+
+
+
+ 6836 goto basic_json_parser_44;
+
+ 6838 goto basic_json_parser_25;
+
+ 6840 basic_json_parser_43:
+
+
-
-
- 6846 goto basic_json_parser_44;
-
-
-
- 6850 goto basic_json_parser_44;
-
- 6852 goto basic_json_parser_25;
-
- 6854 basic_json_parser_51:
-
-
-
- 6858 goto basic_json_parser_33;
+ 6844 goto basic_json_parser_33;
+
+
+
+ 6848 goto basic_json_parser_48;
+
+ 6850 goto basic_json_parser_33;
+ 6851 basic_json_parser_44:
+
+
+
+
+
+ 6857 goto basic_json_parser_33;
+
-
-
-
- 6863 goto basic_json_parser_33;
-
-
-
-
- 6868 goto basic_json_parser_33;
-
-
-
- 6872 return token_type::literal_false;
-
- 6874 basic_json_parser_56:
-
-
-
- 6878 goto basic_json_parser_33;
-
-
-
-
- 6883 goto basic_json_parser_33;
-
-
-
- 6887 return token_type::literal_true;
-
- 6889 basic_json_parser_60:
-
-
-
- 6893 goto basic_json_parser_33;
-
-
-
-
- 6898 goto basic_json_parser_33;
-
-
-
- 6902 return token_type::literal_null;
-
- 6904 basic_json_parser_64:
-
-
-
- 6908 goto basic_json_parser_33;
-
-
+
+
+
+
+ 6864 goto basic_json_parser_45;
+
+
+
+ 6868 goto basic_json_parser_33;
+
+
+
+ 6872 goto basic_json_parser_46;
+
+ 6874 goto basic_json_parser_33;
+
+ 6876 basic_json_parser_45:
+
+
+
+ 6880 goto basic_json_parser_33;
+
+
+
+ 6884 goto basic_json_parser_33;
+
+ 6886 basic_json_parser_46:
+
+ 6888 if (m_limit <= m_cursor)
+
+
+
+
+
+
+ 6895 goto basic_json_parser_25;
+
+
+
+ 6899 goto basic_json_parser_46;
+
+ 6901 goto basic_json_parser_25;
+ 6902 basic_json_parser_48:
+
+ 6904 m_marker = ++m_cursor;
+ 6905 if ((m_limit - m_cursor) < 3)
+
+
+
+
+
-
-
-
-
-
-
-
- 6920 void yyfill() noexcept
-
- 6922 if (not m_stream or not * m_stream)
-
-
-
-
- 6927 const ssize_t offset_start = m_start - m_content;
- 6928 const ssize_t offset_marker = m_marker - m_start;
- 6929 const ssize_t offset_cursor = m_cursor - m_start;
-
- 6931 m_buffer.erase(0, static_cast<size_t>(offset_start));
-
- 6933 std::getline(*m_stream, line);
- 6934 m_buffer +=
"\n" + line;
-
- 6936 m_content =
reinterpret_cast<const lexer_char_t*
>(m_buffer.c_str());
- 6937 m_start = m_content;
- 6938 m_marker = m_start + offset_marker;
- 6939 m_cursor = m_start + offset_cursor;
- 6940 m_limit = m_start + m_buffer.size() - 1;
-
-
- 6944 string_t get_token() const noexcept
-
- 6946 return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
- 6947 static_cast<size_t>(m_cursor - m_start));
-
-
-
-
-
- 6974 result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
-
-
- 6977 for (
const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 7033 auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
- 7034 4).c_str(),
nullptr, 16);
-
-
- 7037 if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
-
-
- 7040 if ((i + 6 >= m_limit) or * (i + 5) !=
'\\' or * (i + 6) !=
'u')
-
- 7042 throw std::invalid_argument(
"missing low surrogate");
-
-
-
- 7046 auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
- 7047 (i + 7), 4).c_str(),
nullptr, 16);
- 7048 result += to_unicode(codepoint, codepoint2);
-
-
-
-
-
-
- 7055 result += to_unicode(codepoint);
-
-
-
-
-
-
-
-
-
-
-
- 7067 result.append(1, static_cast<typename string_t::value_type>(*i));
-
-
-
-
-
-
- 7091 long double get_number()
const
-
-
- 7094 typename string_t::value_type* endptr;
- 7095 const auto float_val = std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start),
-
-
-
-
- 7100 return (reinterpret_cast<lexer_char_t*>(endptr) == m_cursor) ? float_val : NAN;
-
-
-
- 7105 std::istream* m_stream;
-
- 7109 const lexer_char_t* m_content =
nullptr;
- 7111 const lexer_char_t* m_start =
nullptr;
- 7113 const lexer_char_t* m_marker =
nullptr;
- 7115 const lexer_char_t* m_cursor =
nullptr;
- 7117 const lexer_char_t* m_limit =
nullptr;
-
-
-
-
-
-
- 7128 : callback(cb), m_lexer(s)
-
-
-
-
-
-
- 7136 : callback(cb), m_lexer(&_is)
-
-
-
-
-
-
-
- 7145 basic_json result = parse_internal(
true);
-
- 7147 expect(lexer::token_type::end_of_input);
-
-
-
- 7151 return result.is_discarded() ?
basic_json() : result;
-
-
-
- 7156 basic_json parse_internal(
bool keep)
-
-
-
-
-
- 7162 case lexer::token_type::begin_object:
-
-
-
-
-
-
-
-
-
-
+
+
+ 6914 goto basic_json_parser_25;
+
+
+
+ 6918 goto basic_json_parser_48;
+
+ 6920 goto basic_json_parser_25;
+
+
+
+
+
+ 6926 goto basic_json_parser_44;
+
+
+
+ 6930 goto basic_json_parser_44;
+
+ 6932 goto basic_json_parser_25;
+
+ 6934 basic_json_parser_50:
+
+ 6936 yych = *(m_marker = ++m_cursor);
+
+
+
+
+ 6941 goto basic_json_parser_43;
+
+ 6943 goto basic_json_parser_25;
+
+
+
+
+
+ 6949 goto basic_json_parser_44;
+
+
+
+ 6953 goto basic_json_parser_44;
+
+ 6955 goto basic_json_parser_25;
+
+ 6957 basic_json_parser_51:
+
+
+
+ 6961 goto basic_json_parser_33;
+
+
+
+
+ 6966 goto basic_json_parser_33;
+
+
+
+
+ 6971 goto basic_json_parser_33;
+
+
+
+ 6975 return token_type::literal_false;
+
+ 6977 basic_json_parser_56:
+
+
+
+ 6981 goto basic_json_parser_33;
+
+
+
+
+ 6986 goto basic_json_parser_33;
+
+
+
+ 6990 return token_type::literal_true;
+
+ 6992 basic_json_parser_60:
+
+
+
+ 6996 goto basic_json_parser_33;
+
+
+
+
+ 7001 goto basic_json_parser_33;
+
+
+
+ 7005 return token_type::literal_null;
+
+ 7007 basic_json_parser_64:
+
+
+
+ 7011 goto basic_json_parser_33;
+
+
+
+
+
+
+
+
+
+
+ 7023 void yyfill() noexcept
+
+ 7025 if (not m_stream or not * m_stream)
+
+
+
+
+ 7030 const ssize_t offset_start = m_start - m_content;
+ 7031 const ssize_t offset_marker = m_marker - m_start;
+ 7032 const ssize_t offset_cursor = m_cursor - m_start;
+
+ 7034 m_buffer.erase(0, static_cast<size_t>(offset_start));
+
+ 7036 std::getline(*m_stream, line);
+ 7037 m_buffer +=
"\n" + line;
+
+ 7039 m_content =
reinterpret_cast<const lexer_char_t*
>(m_buffer.c_str());
+ 7040 m_start = m_content;
+ 7041 m_marker = m_start + offset_marker;
+ 7042 m_cursor = m_start + offset_cursor;
+ 7043 m_limit = m_start + m_buffer.size() - 1;
+
+
+ 7047 string_t get_token() const noexcept
+
+ 7049 return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+ 7050 static_cast<size_t>(m_cursor - m_start));
+
+
+
+
+
+ 7077 result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+
+ 7080 for (
const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7136 auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+ 7137 4).c_str(),
nullptr, 16);
+
+
+ 7140 if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+
+
+ 7143 if ((i + 6 >= m_limit) or * (i + 5) !=
'\\' or * (i + 6) !=
'u')
+
+ 7145 throw std::invalid_argument(
"missing low surrogate");
+
+
+
+ 7149 auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+ 7150 (i + 7), 4).c_str(),
nullptr, 16);
+ 7151 result += to_unicode(codepoint, codepoint2);
+
+
+
+
+
+
+ 7158 result += to_unicode(codepoint);
+
+
+
+
+
+
+
+
+
+
+
+ 7170 result.append(1, static_cast<typename string_t::value_type>(*i));
+
+
-
- 7175 if (last_token == lexer::token_type::end_object)
-
-
-
-
-
-
-
-
-
-
- 7186 unexpect(lexer::token_type::value_separator);
-
-
-
-
-
- 7192 if (last_token == lexer::token_type::value_separator)
-
-
-
-
-
- 7198 expect(lexer::token_type::value_string);
- 7199 const auto key = m_lexer.get_string();
+
+
+
+ 7194 long double get_number()
const
+
+
+ 7197 typename string_t::value_type* endptr;
+ 7198 const auto float_val = std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start),
+
- 7201 bool keep_tag =
false;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 7217 expect(lexer::token_type::name_separator);
-
-
-
- 7221 auto value = parse_internal(keep);
- 7222 if (keep and keep_tag and not
value.is_discarded())
-
- 7224 result[key] = std::move(
value);
-
-
- 7227 while (last_token == lexer::token_type::value_separator);
-
-
- 7230 expect(lexer::token_type::end_object);
-
-
-
-
-
-
-
-
-
- 7240 case lexer::token_type::begin_array:
-
-
-
-
-
-
-
-
-
-
+
+
+ 7203 return (reinterpret_cast<lexer_char_t*>(endptr) == m_cursor) ? float_val : NAN;
+
+
+
+ 7208 std::istream* m_stream;
+
+ 7212 const lexer_char_t* m_content =
nullptr;
+ 7214 const lexer_char_t* m_start =
nullptr;
+ 7216 const lexer_char_t* m_marker =
nullptr;
+ 7218 const lexer_char_t* m_cursor =
nullptr;
+ 7220 const lexer_char_t* m_limit =
nullptr;
+
+
+
+
+
+
+ 7233 : callback(cb), m_lexer(s)
+
+
+
+
+
+
+ 7241 : callback(cb), m_lexer(&_is)
+
+
+
+
+
+
+
+ 7250 basic_json result = parse_internal(
true);
-
- 7253 if (last_token == lexer::token_type::end_array)
-
-
-
-
-
-
-
-
-
-
- 7264 unexpect(lexer::token_type::value_separator);
-
-
-
-
-
- 7270 if (last_token == lexer::token_type::value_separator)
-
-
-
-
-
- 7276 auto value = parse_internal(keep);
- 7277 if (keep and not
value.is_discarded())
-
- 7279 result.push_back(std::move(
value));
-
-
- 7282 while (last_token == lexer::token_type::value_separator);
-
-
- 7285 expect(lexer::token_type::end_array);
-
-
-
-
-
-
-
-
-
- 7295 case lexer::token_type::literal_null:
-
-
-
-
-
+ 7252 expect(lexer::token_type::end_of_input);
+
+
+
+ 7256 return result.is_discarded() ?
basic_json() : result;
+
+
+
+ 7261 basic_json parse_internal(
bool keep)
+
+
+
+
+
+ 7267 case lexer::token_type::begin_object:
+
+
+
+
+
+
+
+
+
+
+
+
+ 7280 if (last_token == lexer::token_type::end_object)
+
+
+
+
+
+
+
+
+
+
+ 7291 unexpect(lexer::token_type::value_separator);
+
+
+
+
+
+ 7297 if (last_token == lexer::token_type::value_separator)
+
+
+
- 7302 case lexer::token_type::value_string:
-
- 7304 const auto s = m_lexer.get_string();
-
-
-
-
-
- 7310 case lexer::token_type::literal_true:
-
-
-
- 7314 result.m_value =
true;
-
-
-
- 7318 case lexer::token_type::literal_false:
-
-
-
- 7322 result.m_value =
false;
-
-
-
- 7326 case lexer::token_type::value_number:
-
- 7328 auto float_val = m_lexer.get_number();
-
-
-
- 7332 if (std::isnan(float_val))
-
- 7334 throw std::invalid_argument(std::string(
"parse error - ") +
- 7335 m_lexer.get_token() +
" is not a number");
-
-
-
-
-
-
- 7342 if (approx(float_val, static_cast<long double>(int_val)))
-
-
-
- 7346 result.m_value = int_val;
-
-
-
-
-
-
-
-
-
+
+ 7303 expect(lexer::token_type::value_string);
+ 7304 const auto key = m_lexer.get_string();
+
+ 7306 bool keep_tag =
false;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7322 expect(lexer::token_type::name_separator);
+
+
+
+ 7326 auto value = parse_internal(keep);
+ 7327 if (keep and keep_tag and not
value.is_discarded())
+
+ 7329 result[key] = std::move(
value);
+
+
+ 7332 while (last_token == lexer::token_type::value_separator);
+
+
+ 7335 expect(lexer::token_type::end_object);
+
+
+
+
+
+
+
+
+
+ 7345 case lexer::token_type::begin_array:
+
+
+
+
+
+
+
+
+
+
-
-
-
- 7360 unexpect(last_token);
-
-
-
-
-
-
-
-
-
+
+ 7358 if (last_token == lexer::token_type::end_array)
+
+
+
+
+
+
+
+
+
+
+ 7369 unexpect(lexer::token_type::value_separator);
- 7372 typename lexer::token_type get_token()
-
- 7374 last_token = m_lexer.scan();
-
-
-
- 7378 void expect(
typename lexer::token_type t)
const
-
- 7380 if (t != last_token)
-
- 7382 std::string error_msg =
"parse error - unexpected \'";
- 7383 error_msg += m_lexer.get_token();
- 7384 error_msg +=
"\' (" + lexer::token_type_name(last_token);
- 7385 error_msg +=
"); expected " + lexer::token_type_name(t);
- 7386 throw std::invalid_argument(error_msg);
-
-
-
- 7390 void unexpect(
typename lexer::token_type t)
const
-
- 7392 if (t == last_token)
-
- 7394 std::string error_msg =
"parse error - unexpected \'";
- 7395 error_msg += m_lexer.get_token();
- 7396 error_msg +=
"\' (";
- 7397 error_msg += lexer::token_type_name(last_token) +
")";
- 7398 throw std::invalid_argument(error_msg);
-
-
-
-
-
-
- 7408 typename lexer::token_type last_token = lexer::token_type::uninitialized;
-
-
-
-
+
+
+
+
+ 7375 if (last_token == lexer::token_type::value_separator)
+
+
+
+
+
+ 7381 auto value = parse_internal(keep);
+ 7382 if (keep and not
value.is_discarded())
+
+ 7384 result.push_back(std::move(
value));
+
+
+ 7387 while (last_token == lexer::token_type::value_separator);
+
+
+ 7390 expect(lexer::token_type::end_array);
+
+
+
+
+
+
+
+
+
+ 7400 case lexer::token_type::literal_null:
+
+
+
+
+
+
+ 7407 case lexer::token_type::value_string:
+
+ 7409 const auto s = m_lexer.get_string();
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 7442 is_nothrow_move_constructible<nlohmann::json>::value and
- 7443 is_nothrow_move_assignable<nlohmann::json>::value
-
-
-
-
-
-
-
-
-
-
-
- 7457 const auto& h = hash<nlohmann::json::string_t>();
-
-
-
-
-
- 7473 inline nlohmann::json operator "" _json(
const char* s, std::size_t)
-
-
- 7476 (const_cast<char*>(s)));
-
-
-
-basic_json(const number_float_t value)
create a floating-point number (explicit)
-json_reverse_iterator< typename basic_json::iterator > reverse_iterator
a reverse iterator for a basic_json container
-iterator_wrapper(basic_json &cont)
construct iterator wrapper from a container
-bool operator!=(const const_iterator &other) const
comparison: not equal
-iterator operator++(int)
post-increment (it++)
-friend bool operator<=(const_reference lhs, const_reference rhs) noexcept
comparison: less than or equal
-iterator insert(const_iterator pos, basic_json &&value)
inserts element
-typename std::allocator_traits< allocator_type >::pointer pointer
the type of an element pointer
-json_reverse_iterator operator-(difference_type i) const
subtract from iterator
-static basic_json object(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an object from an initializer list
-const_reference operator[](size_type idx) const
access specified array element
-reference operator[](const T(&key)[n])
access specified object element
-typename basic_json::const_pointer pointer
defines a pointer to the type iterated over (value_type)
-const_iterator & operator--()
pre-decrement (–it)
-friend std::istream & operator>>(std::istream &i, basic_json &j)
deserialize from stream
-const_iterator & operator=(const_iterator other) noexcept( std::is_nothrow_move_constructible< pointer >::value and std::is_nothrow_move_assignable< pointer >::value and std::is_nothrow_move_constructible< internal_iterator >::value and std::is_nothrow_move_assignable< internal_iterator >::value )
copy assignment
-typename basic_json::value_type value_type
the type of the values when the iterator is dereferenced
-reference & operator=(basic_json other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
copy assignment
-iterator insert(const_iterator pos, const_iterator first, const_iterator last)
inserts elements
-basic_json(const int value)
create an integer number from an enum type (explicit)
-json_reverse_iterator operator--(int)
post-decrement (it–)
-StringType string_t
a type for a string
-static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an array from an initializer list
-iterator & operator++()
pre-increment (++it)
-friend bool operator!=(const_reference lhs, const_reference rhs) noexcept
comparison: not equal
-reference operator+=(const typename object_t::value_type &value)
add an object to an object
-ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
-const_iterator & operator++()
pre-increment (++it)
-difference_type operator-(const json_reverse_iterator &other) const
return difference
-basic_json<> json
default JSON class
-reference front()
access the first element
-bool is_array() const noexcept
return whether value is an array
-const_iterator find(typename object_t::key_type key) const
find an element in a JSON object
-std::reverse_iterator< Base > base_iterator
shortcut to the reverse iterator adaptor
-json_reverse_iterator(const typename base_iterator::iterator_type &it)
create reverse iterator from iterator
-a class to store JSON values
-json_reverse_iterator & operator--()
pre-decrement (–it)
-void push_back(const typename object_t::value_type &value)
add an object to an object
-friend bool operator==(std::nullptr_t, const_reference v) noexcept
comparison: equal
-const_iterator cbegin() const
returns a const iterator to the first element
-basic_json(const CompatibleObjectType &value)
create an object (implicit)
-bool is_string() const noexcept
return whether value is a string
-iterator & operator+=(difference_type i)
add to iterator
-const PointerType get_ptr() const noexcept
get a pointer value (implicit)
+ 7415 case lexer::token_type::literal_true:
+
+
+
+ 7419 result.m_value =
true;
+
+
+
+ 7423 case lexer::token_type::literal_false:
+
+
+
+ 7427 result.m_value =
false;
+
+
+
+ 7431 case lexer::token_type::value_number:
+
+ 7433 auto float_val = m_lexer.get_number();
+
+
+
+ 7437 if (std::isnan(float_val))
+
+ 7439 throw std::invalid_argument(std::string(
"parse error - ") +
+ 7440 m_lexer.get_token() +
" is not a number");
+
+
+
+
+
+
+ 7447 if (approx(float_val, static_cast<long double>(int_val)))
+
+
+
+ 7451 result.m_value = int_val;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7465 unexpect(last_token);
+
+
+
+
+
+
+
+
+
+
+ 7477 typename lexer::token_type get_token()
+
+ 7479 last_token = m_lexer.scan();
+
+
+
+ 7483 void expect(
typename lexer::token_type t)
const
+
+ 7485 if (t != last_token)
+
+ 7487 std::string error_msg =
"parse error - unexpected \'";
+ 7488 error_msg += m_lexer.get_token();
+ 7489 error_msg +=
"\' (" + lexer::token_type_name(last_token);
+ 7490 error_msg +=
"); expected " + lexer::token_type_name(t);
+ 7491 throw std::invalid_argument(error_msg);
+
+
+
+ 7495 void unexpect(
typename lexer::token_type t)
const
+
+ 7497 if (t == last_token)
+
+ 7499 std::string error_msg =
"parse error - unexpected \'";
+ 7500 error_msg += m_lexer.get_token();
+ 7501 error_msg +=
"\' (";
+ 7502 error_msg += lexer::token_type_name(last_token) +
")";
+ 7503 throw std::invalid_argument(error_msg);
+
+
+
+
+
+
+ 7513 typename lexer::token_type last_token = lexer::token_type::uninitialized;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7551 is_nothrow_move_constructible<nlohmann::json>::value and
+ 7552 is_nothrow_move_assignable<nlohmann::json>::value
+
+
+
+
+
+
+
+
+
+
+
+ 7570 const auto& h = hash<nlohmann::json::string_t>();
+
+
+
+
+
+ 7588 inline nlohmann::json operator "" _json(
const char* s, std::size_t)
+
+
+ 7591 (const_cast<char*>(s)));
+
+
+
+basic_json(const number_float_t value)
create a floating-point number (explicit)
+json_reverse_iterator< typename basic_json::iterator > reverse_iterator
a reverse iterator for a basic_json container
+iterator_wrapper(basic_json &cont)
construct iterator wrapper from a container
+bool operator!=(const const_iterator &other) const
comparison: not equal
+iterator operator++(int)
post-increment (it++)
+friend bool operator<=(const_reference lhs, const_reference rhs) noexcept
comparison: less than or equal
+iterator insert(const_iterator pos, basic_json &&value)
inserts element
+typename std::allocator_traits< allocator_type >::pointer pointer
the type of an element pointer
+json_reverse_iterator operator-(difference_type i) const
subtract from iterator
+static basic_json object(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an object from an initializer list
+const_reference operator[](size_type idx) const
access specified array element
+reference operator[](const T(&key)[n])
access specified object element
+typename basic_json::const_pointer pointer
defines a pointer to the type iterated over (value_type)
+const_iterator & operator--()
pre-decrement (–it)
+friend std::istream & operator>>(std::istream &i, basic_json &j)
deserialize from stream
+const_iterator & operator=(const_iterator other) noexcept( std::is_nothrow_move_constructible< pointer >::value and std::is_nothrow_move_assignable< pointer >::value and std::is_nothrow_move_constructible< internal_iterator >::value and std::is_nothrow_move_assignable< internal_iterator >::value )
copy assignment
+typename basic_json::value_type value_type
the type of the values when the iterator is dereferenced
+reference & operator=(basic_json other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
copy assignment
+iterator insert(const_iterator pos, const_iterator first, const_iterator last)
inserts elements
+basic_json(const int value)
create an integer number from an enum type (explicit)
+json_reverse_iterator operator--(int)
post-decrement (it–)
+StringType string_t
a type for a string
+static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an array from an initializer list
+iterator & operator++()
pre-increment (++it)
+friend bool operator!=(const_reference lhs, const_reference rhs) noexcept
comparison: not equal
+reference operator+=(const typename object_t::value_type &value)
add an object to an object
+ArrayType< basic_json, AllocatorType< basic_json >> array_t
a type for an array
+const_iterator & operator++()
pre-increment (++it)
+difference_type operator-(const json_reverse_iterator &other) const
return difference
+basic_json<> json
default JSON class
+reference front()
access the first element
+bool is_array() const noexcept
return whether value is an array
+const_iterator find(typename object_t::key_type key) const
find an element in a JSON object
+std::reverse_iterator< Base > base_iterator
shortcut to the reverse iterator adaptor
+json_reverse_iterator(const typename base_iterator::iterator_type &it)
create reverse iterator from iterator
+a class to store JSON values
+json_reverse_iterator & operator--()
pre-decrement (–it)
+void push_back(const typename object_t::value_type &value)
add an object to an object
+friend bool operator==(std::nullptr_t, const_reference v) noexcept
comparison: equal
+const_iterator cbegin() const
returns a const iterator to the first element
+basic_json(const CompatibleObjectType &value)
create an object (implicit)
+bool is_string() const noexcept
return whether value is a string
+iterator & operator+=(difference_type i)
add to iterator
+const PointerType get_ptr() const noexcept
get a pointer value (implicit)
the parser read ] and finished processing a JSON array
-const_iterator base_iterator
-a mutable random access iterator for the basic_json class
-iterator & operator-=(difference_type i)
subtract from iterator
-static basic_json parse(std::istream &&i, parser_callback_t cb=nullptr)
-reference operator[](const typename object_t::key_type &key)
access specified object element
+const_iterator base_iterator
+a mutable random access iterator for the basic_json class
+iterator & operator-=(difference_type i)
subtract from iterator
+static basic_json parse(std::istream &&i, parser_callback_t cb=nullptr)
deserialize from stream
+reference operator[](const typename object_t::key_type &key)
access specified object element
-difference_type operator-(const iterator &other) const
-reference value() const
return the value of an iterator
-iterator insert(const_iterator pos, size_type count, const basic_json &value)
inserts elements
-const_iterator end() const
returns a const iterator to one past the last element
-const_iterator(const const_iterator &other) noexcept
copy constructor
-reference at(const typename object_t::key_type &key)
access specified object element with bounds checking
-reference operator+=(const basic_json &value)
add an object to an array
-object_t::key_type key() const
return the key of an object iterator
-iterator end()
returns an iterator to one past the last element
-ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
-reference operator*()
return a reference to the value pointed to by the iterator
-reverse_iterator rend()
returns an iterator to the reverse-end
-bool is_object() const noexcept
return whether value is an object
-const_iterator operator-(difference_type i)
subtract from iterator
-bool is_discarded() const noexcept
return whether value is discarded
-typename basic_json::const_reference reference
defines a reference to the type iterated over (value_type)
-const_reverse_iterator rend() const
returns a const reverse iterator to one before the first
-basic_json(const CompatibleArrayType &value)
create an array (implicit)
-size_type erase(const typename object_t::key_type &key)
remove element from a JSON object given a key
-bool is_boolean() const noexcept
return whether value is a boolean
-iterator begin()
returns an iterator to the first element
-const_reference at(const typename object_t::key_type &key) const
access specified object element with bounds checking
-AllocatorType< basic_json > allocator_type
the allocator type
-bool is_number_integer() const noexcept
return whether value is an integer number
-basic_json(const string_t &value)
create a string (explicit)
-iterator operator+(difference_type i)
add to iterator
-std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
+difference_type operator-(const iterator &other) const
+reference value() const
return the value of an iterator
+iterator insert(const_iterator pos, size_type count, const basic_json &value)
inserts elements
+const_iterator end() const
returns a const iterator to one past the last element
+const_iterator(const const_iterator &other) noexcept
copy constructor
+reference at(const typename object_t::key_type &key)
access specified object element with bounds checking
+reference operator+=(const basic_json &value)
add an object to an array
+object_t::key_type key() const
return the key of an object iterator
+iterator end()
returns an iterator to one past the last element
+ObjectType< StringType, basic_json, std::less< StringType >, AllocatorType< std::pair< const StringType, basic_json >>> object_t
a type for an object
+reference operator*()
return a reference to the value pointed to by the iterator
+reverse_iterator rend()
returns an iterator to the reverse-end
+bool is_object() const noexcept
return whether value is an object
+const_iterator operator-(difference_type i)
subtract from iterator
+bool is_discarded() const noexcept
return whether value is discarded
+typename basic_json::const_reference reference
defines a reference to the type iterated over (value_type)
+const_reverse_iterator rend() const
returns a const reverse iterator to one before the first
+basic_json(const CompatibleArrayType &value)
create an array (implicit)
+size_type erase(const typename object_t::key_type &key)
remove element from a JSON object given a key
+bool is_boolean() const noexcept
return whether value is a boolean
+iterator begin()
returns an iterator to the first element
+const_reference at(const typename object_t::key_type &key) const
access specified object element with bounds checking
+AllocatorType< basic_json > allocator_type
the allocator type
+bool is_number_integer() const noexcept
return whether value is an integer number
+basic_json(const string_t &value)
create a string (explicit)
+iterator operator+(difference_type i)
add to iterator
+std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t
per-element parser callback type
const_iterator()=default
default constructor
the parser read [ and started to process a JSON array
-iterator find(typename object_t::key_type key)
find an element in a JSON object
-friend bool operator>=(const_reference lhs, const_reference rhs) noexcept
comparison: greater than or equal
-iterator & operator--()
pre-decrement (–it)
-friend bool operator<(const_reference lhs, const_reference rhs) noexcept
comparison: less than
-pointer operator->() const
dereference the iterator
+iterator find(typename object_t::key_type key)
find an element in a JSON object
+friend bool operator>=(const_reference lhs, const_reference rhs) noexcept
comparison: greater than or equal
+iterator & operator--()
pre-decrement (–it)
+friend bool operator<(const_reference lhs, const_reference rhs) noexcept
comparison: less than
+pointer operator->() const
dereference the iterator
discarded by the the parser callback function
-const_iterator cend() const
returns a const iterator to one past the last element
-typename Base::reference reference
the reference type for the pointed-to element
-size_type size() const noexcept
returns the number of elements
-static allocator_type get_allocator()
returns the allocator associated with the container
+const_iterator cend() const
returns a const iterator to one past the last element
+typename Base::reference reference
the reference type for the pointed-to element
+size_type size() const noexcept
returns the number of elements
+static allocator_type get_allocator()
returns the allocator associated with the container
object (unordered set of name/value pairs)
-reference at(size_type idx)
access specified array element with bounds checking
+reference at(size_type idx)
access specified array element with bounds checking
the parser read } and finished processing a JSON object
iterator()=default
default constructor
-json_reverse_iterator(const base_iterator &it)
create reverse iterator from base class
-iterator_wrapper_internal end()
return iterator end (needed for range-based for)
-value_t type() const noexcept
return the type of the JSON value (explicit)
-friend std::ostream & operator>>(const basic_json &j, std::ostream &o)
serialize to stream
-ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
-basic_json(size_type count, const basic_json &value)
construct an array with count copies of given value
-object_t::key_type key() const
return the key of an object iterator
-bool is_structured() const noexcept
return whether type is structured
-namespace for Niels Lohmann
-typename basic_json::difference_type difference_type
a type to represent differences between iterators
-void swap(array_t &other)
exchanges the values
-reverse_iterator rbegin()
returns an iterator to the reverse-beginning
+json_reverse_iterator(const base_iterator &it)
create reverse iterator from base class
+iterator_wrapper_internal end()
return iterator end (needed for range-based for)
+value_t type() const noexcept
return the type of the JSON value (explicit)
+friend std::ostream & operator>>(const basic_json &j, std::ostream &o)
serialize to stream
+ValueType value(const typename object_t::key_type &key, ValueType default_value) const
access specified object element with default value
+basic_json(size_type count, const basic_json &value)
construct an array with count copies of given value
+object_t::key_type key() const
return the key of an object iterator
+bool is_structured() const noexcept
return whether type is structured
+namespace for Niels Lohmann
+typename basic_json::difference_type difference_type
a type to represent differences between iterators
+void swap(array_t &other)
exchanges the values
+reverse_iterator rbegin()
returns an iterator to the reverse-beginning
-iterator_wrapper_internal begin()
return iterator begin (needed for range-based for)
-reference operator[](difference_type n) const
access to successor
-std::size_t size_type
a type to represent container sizes
-reference operator+=(basic_json &&value)
add an object to an array
-const_reverse_iterator rbegin() const
returns a const reverse iterator to the last element
-
-basic_json(const array_t &value)
create an array (explicit)
-basic_json(const basic_json &other)
copy constructor
-const_iterator operator+(difference_type i)
add to iterator
-basic_json(boolean_t value)
create a boolean (explicit)
-value_t
the JSON type enumeration
-const value_type & const_reference
the type of an element const reference
-basic_json(const CompatibleNumberFloatType value) noexcept
create an floating-point number (implicit)
-bool is_null() const noexcept
return whether value is null
-void swap(string_t &other)
exchanges the values
-reference value() const
return the value of an iterator
-void push_back(basic_json &&value)
add an object to an array
-const_iterator operator--(int)
post-decrement (it–)
-void erase(const size_type idx)
remove element from a JSON array given an index
-void clear() noexcept
clears the contents
-basic_json(const CompatibleStringType &value)
create a string (implicit)
-pointer operator->()
dereference the iterator
-basic_json value_type
the type of elements in a basic_json container
+iterator_wrapper_internal begin()
return iterator begin (needed for range-based for)
+reference operator[](difference_type n) const
access to successor
+std::size_t size_type
a type to represent container sizes
+reference operator+=(basic_json &&value)
add an object to an array
+const_reverse_iterator rbegin() const
returns a const reverse iterator to the last element
+
+basic_json(const array_t &value)
create an array (explicit)
+basic_json(const basic_json &other)
copy constructor
+const_iterator operator+(difference_type i)
add to iterator
+basic_json(boolean_t value)
create a boolean (explicit)
+value_t
the JSON type enumeration
+const value_type & const_reference
the type of an element const reference
+basic_json(const CompatibleNumberFloatType value) noexcept
create an floating-point number (implicit)
+bool is_null() const noexcept
return whether value is null
+void swap(string_t &other)
exchanges the values
+reference value() const
return the value of an iterator
+void push_back(basic_json &&value)
add an object to an array
+const_iterator operator--(int)
post-decrement (it–)
+void erase(const size_type idx)
remove element from a JSON array given an index
+void clear() noexcept
clears the contents
+basic_json(const CompatibleStringType &value)
create a string (implicit)
+pointer operator->()
dereference the iterator
+basic_json value_type
the type of elements in a basic_json container
array (ordered collection of values)
-const_reference front() const
access the first element
-bool operator>=(const const_iterator &other) const
comparison: greater than or equal
-iterator insert(const_iterator pos, std::initializer_list< basic_json > ilist)
inserts elements
-std::ptrdiff_t difference_type
a type to represent differences between iterators
-const_iterator & operator+=(difference_type i)
add to iterator
-basic_json(std::initializer_list< basic_json > init, bool type_deduction=true, value_t manual_type=value_t::array)
create a container (array or object) from an initializer list
-difference_type operator-(const const_iterator &other) const
return difference
-friend bool operator==(const_reference lhs, const_reference rhs) noexcept
comparison: equal
-bool is_number() const noexcept
return whether value is a number
-BooleanType boolean_t
a type for a boolean
-const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
+const_reference front() const
access the first element
+bool operator>=(const const_iterator &other) const
comparison: greater than or equal
+iterator insert(const_iterator pos, std::initializer_list< basic_json > ilist)
inserts elements
+std::ptrdiff_t difference_type
a type to represent differences between iterators
+const_iterator & operator+=(difference_type i)
add to iterator
+basic_json(std::initializer_list< basic_json > init, bool type_deduction=true, value_t manual_type=value_t::array)
create a container (array or object) from an initializer list
+difference_type operator-(const const_iterator &other) const
return difference
+friend bool operator==(const_reference lhs, const_reference rhs) noexcept
comparison: equal
+bool is_number() const noexcept
return whether value is a number
+BooleanType boolean_t
a type for a boolean
+const_reverse_iterator crend() const
returns a const reverse iterator to one before the first
basic_json() noexcept=default
create a null object (implicitly)
the parser read a key of a value in an object
-bool empty() const noexcept
checks whether the container is empty
-string_t value(const typename object_t::key_type &key, const char *default_value) const
access specified object element with default value
-void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
-basic_json(const object_t &value)
create an object (explicit)
-json_reverse_iterator< typename basic_json::const_iterator > const_reverse_iterator
a const reverse iterator for a basic_json container
-const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
-reference value() const
return the value of an iterator
+bool empty() const noexcept
checks whether the container is empty
+string_t value(const typename object_t::key_type &key, const char *default_value) const
overload for a default value of type const char*
+void swap(reference other) noexcept( std::is_nothrow_move_constructible< value_t >::value and std::is_nothrow_move_assignable< value_t >::value and std::is_nothrow_move_constructible< json_value >::value and std::is_nothrow_move_assignable< json_value >::value )
exchanges the values
+basic_json(const object_t &value)
create an object (explicit)
+json_reverse_iterator< typename basic_json::const_iterator > const_reverse_iterator
a const reverse iterator for a basic_json container
+const_reverse_iterator crbegin() const
returns a const reverse iterator to the last element
+reference value() const
return the value of an iterator
-const_iterator(pointer object)
constructor for a given JSON instance
-friend bool operator<(const value_t lhs, const value_t rhs)
comparison operator for JSON types
-iterator(pointer object) noexcept
constructor for a given JSON instance
-bool operator<(const const_iterator &other) const
comparison: smaller
-string_t dump(const int indent=-1) const
serialization
-friend bool operator!=(const_reference v, std::nullptr_t) noexcept
comparison: not equal
-const_iterator & operator-=(difference_type i)
subtract from iterator
+const_iterator(pointer object)
constructor for a given JSON instance
+friend bool operator<(const value_t lhs, const value_t rhs)
comparison operator for JSON types
+iterator(pointer object) noexcept
constructor for a given JSON instance
+bool operator<(const const_iterator &other) const
comparison: smaller
+string_t dump(const int indent=-1) const
serialization
+friend bool operator!=(const_reference v, std::nullptr_t) noexcept
comparison: not equal
+const_iterator & operator-=(difference_type i)
subtract from iterator
number value (floating-point)
-basic_json(const CompatibleNumberIntegerType value) noexcept
create an integer number (implicit)
-static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
-InteratorType erase(InteratorType first, InteratorType last)
remove elements given an iterator range
-json_reverse_iterator operator++(int)
post-increment (it++)
-PointerType get_ptr() noexcept
get a pointer value (implicit)
-void push_back(const basic_json &value)
add an object to an array
+basic_json(const CompatibleNumberIntegerType value) noexcept
create an integer number (implicit)
+static basic_json parse(const string_t &s, parser_callback_t cb=nullptr)
deserialize from string
+InteratorType erase(InteratorType first, InteratorType last)
remove elements given an iterator range
+json_reverse_iterator operator++(int)
post-increment (it++)
+PointerType get_ptr() noexcept
get a pointer value (implicit)
+void push_back(const basic_json &value)
add an object to an array
-const_iterator(const iterator &other)
copy constructor given a nonconst iterator
-friend bool operator!=(std::nullptr_t, const_reference v) noexcept
comparison: not equal
-InteratorType erase(InteratorType pos)
remove element given an iterator
-basic_json(const typename string_t::value_type *value)
create a string (explicit)
-bool operator<=(const const_iterator &other) const
comparison: less than or equal
-reference back()
access the last element
-bool is_number_float() const noexcept
return whether value is a floating-point number
+const_iterator(const iterator &other)
copy constructor given a nonconst iterator
+friend bool operator!=(std::nullptr_t, const_reference v) noexcept
comparison: not equal
+InteratorType erase(InteratorType pos)
remove element given an iterator
+basic_json(const typename string_t::value_type *value)
create a string (explicit)
+bool operator<=(const const_iterator &other) const
comparison: less than or equal
+reference back()
access the last element
+bool is_number_float() const noexcept
return whether value is a floating-point number
the parser read { and started to process a JSON object
-const_iterator operator++(int)
post-increment (it++)
-typename std::allocator_traits< allocator_type >::const_pointer const_pointer
the type of an element const pointer
-iterator(const iterator &other) noexcept
copy constructor
-const_reference back() const
access the last element
-basic_json(InputIT first, InputIT last)
construct a JSON container given an iterator range
-static basic_json parse(std::istream &i, parser_callback_t cb=nullptr)
deserialize from stream
-size_type count(typename object_t::key_type key) const
returns the number of occurrences of a key in a JSON object
-size_type max_size() const noexcept
returns the maximum possible number of elements
-bool operator==(const const_iterator &other) const
comparison: equal
-json_reverse_iterator & operator++()
pre-increment (++it)
-bool operator>(const const_iterator &other) const
comparison: greater than
-friend bool operator>(const_reference lhs, const_reference rhs) noexcept
comparison: greater than
-basic_json(basic_json &&other) noexcept
move constructor
-const_iterator begin() const
returns a const iterator to the first element
-const_reference at(size_type idx) const
access specified array element with bounds checking
-json_reverse_iterator & operator+=(difference_type i)
add to iterator
-a const random access iterator for the basic_json class
-a template for a reverse iterator class
-void swap(object_t &other)
exchanges the values
-std::bidirectional_iterator_tag iterator_category
the category of the iterator
-bool is_primitive() const noexcept
return whether type is primitive
-basic_json(const value_t value)
create an empty value with a given type
-friend bool operator==(const_reference v, std::nullptr_t) noexcept
comparison: equal
+const_iterator operator++(int)
post-increment (it++)
+typename std::allocator_traits< allocator_type >::const_pointer const_pointer
the type of an element const pointer
+iterator(const iterator &other) noexcept
copy constructor
+const_reference back() const
access the last element
+basic_json(InputIT first, InputIT last)
construct a JSON container given an iterator range
+static basic_json parse(std::istream &i, parser_callback_t cb=nullptr)
deserialize from stream
+size_type count(typename object_t::key_type key) const
returns the number of occurrences of a key in a JSON object
+size_type max_size() const noexcept
returns the maximum possible number of elements
+bool operator==(const const_iterator &other) const
comparison: equal
+json_reverse_iterator & operator++()
pre-increment (++it)
+bool operator>(const const_iterator &other) const
comparison: greater than
+friend bool operator>(const_reference lhs, const_reference rhs) noexcept
comparison: greater than
+basic_json(basic_json &&other) noexcept
move constructor
+const_iterator begin() const
returns a const iterator to the first element
+const_reference at(size_type idx) const
access specified array element with bounds checking
+json_reverse_iterator & operator+=(difference_type i)
add to iterator
+a const random access iterator for the basic_json class
+a template for a reverse iterator class
+void swap(object_t &other)
exchanges the values
+std::bidirectional_iterator_tag iterator_category
the category of the iterator
+bool is_primitive() const noexcept
return whether type is primitive
+basic_json(const value_t value)
create an empty value with a given type
+friend bool operator==(const_reference v, std::nullptr_t) noexcept
comparison: equal
-reference operator[](difference_type n) const
access to successor
-NumberIntegerType number_integer_t
a type for a number (integer)
-reference operator[](difference_type n) const
access to successor
-reference operator*() const
return a reference to the value pointed to by the iterator
-iterator insert(const_iterator pos, const basic_json &value)
inserts element
-value_type & reference
the type of an element reference
-friend std::istream & operator<<(basic_json &j, std::istream &i)
deserialize from stream
+reference operator[](difference_type n) const
access to successor
+NumberIntegerType number_integer_t
a type for a number (integer)
+reference operator[](difference_type n) const
access to successor
+reference operator*() const
return a reference to the value pointed to by the iterator
+iterator insert(const_iterator pos, const basic_json &value)
inserts element
+value_type & reference
the type of an element reference
+friend std::istream & operator<<(basic_json &j, std::istream &i)
deserialize from stream
the parser finished reading a JSON value
-NumberFloatType number_float_t
a type for a number (floating-point)
-std::size_t operator()(const nlohmann::json &j) const
return a hash value for a JSON object
-friend std::ostream & operator<<(std::ostream &o, const basic_json &j)
serialize to stream
-iterator & operator=(iterator other) noexcept( std::is_nothrow_move_constructible< pointer >::value and std::is_nothrow_move_assignable< pointer >::value and std::is_nothrow_move_constructible< internal_iterator >::value and std::is_nothrow_move_assignable< internal_iterator >::value )
copy assignment
-reference operator[](size_type idx)
access specified array element
-iterator operator--(int)
post-decrement (it–)
-json_reverse_iterator operator+(difference_type i) const
add to iterator
-parse_event_t
JSON callback events.
-iterator operator-(difference_type i)
subtract from iterator
-wrapper to access iterator member functions in range-based for
+NumberFloatType number_float_t
a type for a number (floating-point)
+std::size_t operator()(const nlohmann::json &j) const
return a hash value for a JSON object
+friend std::ostream & operator<<(std::ostream &o, const basic_json &j)
serialize to stream
+iterator & operator=(iterator other) noexcept( std::is_nothrow_move_constructible< pointer >::value and std::is_nothrow_move_assignable< pointer >::value and std::is_nothrow_move_constructible< internal_iterator >::value and std::is_nothrow_move_assignable< internal_iterator >::value )
copy assignment
+reference operator[](size_type idx)
access specified array element
+iterator operator--(int)
post-decrement (it–)
+json_reverse_iterator operator+(difference_type i) const
add to iterator
+parse_event_t
JSON callback events.
+iterator operator-(difference_type i)
subtract from iterator
+wrapper to access iterator member functions in range-based for
diff --git a/namespacemembers.html b/namespacemembers.html
index 6e64b5f5d..f16a8ea41 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/namespacemembers_type.html b/namespacemembers_type.html
index 1cce778f2..51a822da8 100644
--- a/namespacemembers_type.html
+++ b/namespacemembers_type.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/namespacenlohmann.html b/namespacenlohmann.html
index 39e71a6d3..310d07128 100644
--- a/namespacenlohmann.html
+++ b/namespacenlohmann.html
@@ -112,10 +112,11 @@ Typedefs
diff --git a/namespacenlohmann_1_1anonymous__namespace_02json_8hpp_03.html b/namespacenlohmann_1_1anonymous__namespace_02json_8hpp_03.html
index 5cdf4f88c..afbfb2d9b 100644
--- a/namespacenlohmann_1_1anonymous__namespace_02json_8hpp_03.html
+++ b/namespacenlohmann_1_1anonymous__namespace_02json_8hpp_03.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
unnamed namespace with internal helper functions
-
+
More...
|
@@ -100,10 +100,12 @@ Classes
| | Helper to determine whether there's a key_type for T.
|
| |
-
+
+
diff --git a/namespacenlohmann_a2bfd99e845a2e5cd90aeaf1b1431f474.html b/namespacenlohmann_a2bfd99e845a2e5cd90aeaf1b1431f474.html
index 9dabed02e..c5a7c35f8 100644
--- a/namespacenlohmann_a2bfd99e845a2e5cd90aeaf1b1431f474.html
+++ b/namespacenlohmann_a2bfd99e845a2e5cd90aeaf1b1431f474.html
@@ -98,9 +98,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
-
This type is the default specialization of the basic_json class which uses the standard template types.
+
This type is the default specialization of the basic_json class which uses the standard template types.
+
- Since
- version 1.0
-
Definition at line 7425 of file json.hpp.
+
Definition at line 7532 of file json.hpp.
@@ -110,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html b/structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html
index 7abeff55c..d6cfcc827 100644
--- a/structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html
+++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html
index 2fe88ffb9..fe1c3df40 100644
--- a/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html
+++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html
@@ -111,11 +111,11 @@ Public Member Functions
struct std::hash< nlohmann::json >
-Definition at line 7451 of file json.hpp.
+Definition at line 7560 of file json.hpp.
diff --git a/structstd_1_1hash_3_01nlohmann_1_1json_01_4_afd03f6ad53db22868ca4163a8200b2f9.html b/structstd_1_1hash_3_01nlohmann_1_1json_01_4_afd03f6ad53db22868ca4163a8200b2f9.html
index 77a8462e8..f0700fe1e 100644
--- a/structstd_1_1hash_3_01nlohmann_1_1json_01_4_afd03f6ad53db22868ca4163a8200b2f9.html
+++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4_afd03f6ad53db22868ca4163a8200b2f9.html
@@ -110,8 +110,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');