From 5b307b7a20a78c50772b87ffc20968e40111f148 Mon Sep 17 00:00:00 2001 From: Tobi-D7 Date: Tue, 12 Apr 2022 07:53:21 +0000 Subject: [PATCH] Documentation1 --- _formulas.tex | 15 + annotated.html | 112 + annotated_dup.js | 11 + bc_s.png | Bin 0 -> 662 bytes bdwn.png | Bin 0 -> 148 bytes classLog-members.html | 78 + classLog.html | 222 + classLog.js | 10 + classRenderD7_1_1Image-members.html | 77 + classRenderD7_1_1Image.html | 220 + classRenderD7_1_1Image.js | 9 + classRenderD7_1_1Sheet-members.html | 74 + classRenderD7_1_1Sheet.html | 110 + classRenderD7_1_1Sheet.js | 6 + classRenderD7_1_1Sprite-members.html | 72 + classRenderD7_1_1Sprite.html | 89 + classRenderD7_1_1Sprite.js | 4 + classes.html | 147 + classnlohmann_1_1basic__json-members.html | 299 + classnlohmann_1_1basic__json.html | 11151 ++++++++++++++++ classnlohmann_1_1basic__json.js | 201 + ...yte__container__with__subtype-members.html | 76 + ...ann_1_1byte__container__with__subtype.html | 271 + ...hmann_1_1byte__container__with__subtype.js | 8 + ...n_1_1detail_1_1binary__reader-members.html | 109 + ...snlohmann_1_1detail_1_1binary__reader.html | 1547 +++ classnlohmann_1_1detail_1_1binary__reader.js | 41 + ...n_1_1detail_1_1binary__writer-members.html | 99 + ...snlohmann_1_1detail_1_1binary__writer.html | 718 + classnlohmann_1_1detail_1_1binary__writer.js | 23 + ...ohmann_1_1detail_1_1exception-members.html | 74 + classnlohmann_1_1detail_1_1exception.html | 128 + classnlohmann_1_1detail_1_1exception.js | 6 + classnlohmann_1_1detail_1_1exception.png | Bin 0 -> 1723 bytes ...etail_1_1file__input__adapter-members.html | 72 + ...ann_1_1detail_1_1file__input__adapter.html | 84 + ...hmann_1_1detail_1_1file__input__adapter.js | 4 + ...ail_1_1input__stream__adapter-members.html | 72 + ...n_1_1detail_1_1input__stream__adapter.html | 84 + ...ann_1_1detail_1_1input__stream__adapter.js | 4 + ..._1detail_1_1invalid__iterator-members.html | 74 + ...ohmann_1_1detail_1_1invalid__iterator.html | 148 + ...lohmann_1_1detail_1_1invalid__iterator.png | Bin 0 -> 706 bytes ...hmann_1_1detail_1_1iter__impl-members.html | 107 + classnlohmann_1_1detail_1_1iter__impl.html | 1175 ++ classnlohmann_1_1detail_1_1iter__impl.js | 39 + ...1_1detail_1_1iteration__proxy-members.html | 75 + ...lohmann_1_1detail_1_1iteration__proxy.html | 106 + ...snlohmann_1_1detail_1_1iteration__proxy.js | 7 + ...il_1_1json__reverse__iterator-members.html | 86 + ..._1_1detail_1_1json__reverse__iterator.html | 163 + ...nn_1_1detail_1_1json__reverse__iterator.js | 18 + ...ail_1_1json__sax__dom__parser-members.html | 78 + ...n_1_1detail_1_1json__sax__dom__parser.html | 207 + ...ann_1_1detail_1_1json__sax__dom__parser.js | 10 + classnlohmann_1_1detail_1_1lexer-members.html | 98 + classnlohmann_1_1detail_1_1lexer.html | 529 + classnlohmann_1_1detail_1_1lexer.js | 29 + ...ann_1_1detail_1_1other__error-members.html | 74 + classnlohmann_1_1detail_1_1other__error.html | 122 + classnlohmann_1_1detail_1_1other__error.png | Bin 0 -> 660 bytes ...n_1_1detail_1_1out__of__range-members.html | 74 + ...snlohmann_1_1detail_1_1out__of__range.html | 138 + classnlohmann_1_1detail_1_1out__of__range.png | Bin 0 -> 687 bytes ...il_1_1output__stream__adapter-members.html | 70 + ..._1_1detail_1_1output__stream__adapter.html | 92 + ...n_1_1detail_1_1output__stream__adapter.png | Bin 0 -> 1182 bytes ...il_1_1output__string__adapter-members.html | 70 + ..._1_1detail_1_1output__string__adapter.html | 92 + ...n_1_1detail_1_1output__string__adapter.png | Bin 0 -> 1281 bytes ...il_1_1output__vector__adapter-members.html | 70 + ..._1_1detail_1_1output__vector__adapter.html | 92 + ...n_1_1detail_1_1output__vector__adapter.png | Bin 0 -> 1164 bytes ...ann_1_1detail_1_1parse__error-members.html | 76 + classnlohmann_1_1detail_1_1parse__error.html | 237 + classnlohmann_1_1detail_1_1parse__error.js | 4 + classnlohmann_1_1detail_1_1parse__error.png | Bin 0 -> 681 bytes ...snlohmann_1_1detail_1_1parser-members.html | 79 + classnlohmann_1_1detail_1_1parser.html | 218 + classnlohmann_1_1detail_1_1parser.js | 11 + ...mann_1_1detail_1_1type__error-members.html | 74 + classnlohmann_1_1detail_1_1type__error.html | 154 + classnlohmann_1_1detail_1_1type__error.png | Bin 0 -> 679 bytes classnlohmann_1_1json__pointer-members.html | 102 + classnlohmann_1_1json__pointer.html | 1403 ++ classnlohmann_1_1json__pointer.js | 27 + classsound-members.html | 75 + classsound.html | 189 + classsound.js | 7 + closed.png | Bin 0 -> 133 bytes deprecated.html | 77 + dir_1e00b99eb9247d8d1f0fc0398461b1b9.html | 73 + dir_397d9aeee4af8edecac90968d93b57df.html | 69 + dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html | 69 + dir_510d348b6a02c69273dfea2c9e531c0f.html | 69 + dir_7374381ecdb819c64ee9b6ea2bd3370d.html | 69 + doc.png | Bin 0 -> 770 bytes doxygen.css | 1771 +++ doxygen.png | Bin 0 -> 3811 bytes dynsections.js | 120 + folderclosed.png | Bin 0 -> 606 bytes folderopen.png | Bin 0 -> 655 bytes functions.html | 101 + functions_b.html | 109 + functions_c.html | 158 + functions_d.html | 84 + functions_dup.js | 26 + functions_e.html | 109 + functions_f.html | 102 + functions_func.html | 87 + functions_func.js | 26 + functions_func_b.html | 92 + functions_func_c.html | 121 + functions_func_d.html | 77 + functions_func_e.html | 97 + functions_func_f.html | 99 + functions_func_g.html | 195 + functions_func_h.html | 74 + functions_func_i.html | 128 + functions_func_j.html | 80 + functions_func_k.html | 73 + functions_func_l.html | 83 + functions_func_m.html | 77 + functions_func_n.html | 83 + functions_func_o.html | 147 + functions_func_p.html | 115 + functions_func_r.html | 80 + functions_func_s.html | 129 + functions_func_t.html | 92 + functions_func_u.html | 87 + functions_func_v.html | 73 + functions_func_w.html | 122 + functions_func_~.html | 77 + functions_g.html | 195 + functions_h.html | 74 + functions_i.html | 160 + functions_j.html | 84 + functions_k.html | 73 + functions_l.html | 92 + functions_m.html | 98 + functions_n.html | 98 + functions_o.html | 183 + functions_p.html | 132 + functions_r.html | 97 + functions_rela.html | 101 + functions_s.html | 139 + functions_t.html | 101 + functions_type.html | 236 + functions_u.html | 87 + functions_v.html | 77 + functions_vars.html | 275 + functions_w.html | 122 + functions_~.html | 77 + hierarchy.html | 109 + hierarchy.js | 42 + index.html | 81 + jquery.js | 35 + namespaceRenderD7.html | 126 + namespaceRenderD7.js | 6 + namespaceRenderD7_1_1Lang.html | 127 + namespacemembers.html | 135 + namespacemembers_enum.html | 81 + namespacemembers_func.html | 111 + namespacemembers_type.html | 75 + namespacenlohmann.html | 190 + namespacenlohmann.js | 10 + namespacenlohmann_1_1detail.html | 498 + namespacenlohmann_1_1detail.js | 25 + ...spacenlohmann_1_1detail_1_1dtoa__impl.html | 457 + namespaces.html | 77 + namespaces_dup.js | 5 + nav_f.png | Bin 0 -> 141 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 96 bytes navtree.css | 146 + navtree.js | 544 + navtreedata.js | 59 + navtreeindex0.js | 253 + navtreeindex1.js | 253 + navtreeindex2.js | 63 + open.png | Bin 0 -> 123 bytes pages.html | 73 + resize.js | 137 + splitbar.png | Bin 0 -> 314 bytes ...ctnlohmann_1_1adl__serializer-members.html | 73 + structnlohmann_1_1adl__serializer.html | 198 + ...1detail_1_1internal__iterator-members.html | 74 + ...hmann_1_1detail_1_1internal__iterator.html | 99 + ...lohmann_1_1detail_1_1internal__iterator.js | 6 + ..._1_1output__adapter__protocol-members.html | 70 + ..._1detail_1_1output__adapter__protocol.html | 94 + ...1_1detail_1_1output__adapter__protocol.png | Bin 0 -> 2108 bytes ...mann_1_1detail_1_1position__t-members.html | 75 + structnlohmann_1_1detail_1_1position__t.html | 103 + structnlohmann_1_1detail_1_1position__t.js | 7 + structnlohmann_1_1json__sax-members.html | 84 + structnlohmann_1_1json__sax.html | 621 + structnlohmann_1_1json__sax.js | 16 + structnlohmann_1_1ordered__map-members.html | 70 + structnlohmann_1_1ordered__map.html | 78 + ...ash_3_01nlohmann_1_1json_01_4-members.html | 72 + ...std_1_1hash_3_01nlohmann_1_1json_01_4.html | 116 + ...ctstd_1_1hash_3_01nlohmann_1_1json_01_4.js | 4 + ...nn_1_1detail_1_1value__t_01_4-members.html | 72 + ..._1nlohmann_1_1detail_1_1value__t_01_4.html | 123 + ..._1_1nlohmann_1_1detail_1_1value__t_01_4.js | 4 + sync_off.png | Bin 0 -> 844 bytes sync_on.png | Bin 0 -> 838 bytes tab_a.png | Bin 0 -> 146 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 178 bytes tab_s.png | Bin 0 -> 193 bytes tabs.css | 1 + ...1_1basic__json_1_1json__value-members.html | 95 + ...lohmann_1_1basic__json_1_1json__value.html | 206 + ...nnlohmann_1_1basic__json_1_1json__value.js | 27 + 216 files changed, 36753 insertions(+) create mode 100644 _formulas.tex create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classLog-members.html create mode 100644 classLog.html create mode 100644 classLog.js create mode 100644 classRenderD7_1_1Image-members.html create mode 100644 classRenderD7_1_1Image.html create mode 100644 classRenderD7_1_1Image.js create mode 100644 classRenderD7_1_1Sheet-members.html create mode 100644 classRenderD7_1_1Sheet.html create mode 100644 classRenderD7_1_1Sheet.js create mode 100644 classRenderD7_1_1Sprite-members.html create mode 100644 classRenderD7_1_1Sprite.html create mode 100644 classRenderD7_1_1Sprite.js create mode 100644 classes.html create mode 100644 classnlohmann_1_1basic__json-members.html create mode 100644 classnlohmann_1_1basic__json.html create mode 100644 classnlohmann_1_1basic__json.js create mode 100644 classnlohmann_1_1byte__container__with__subtype-members.html create mode 100644 classnlohmann_1_1byte__container__with__subtype.html create mode 100644 classnlohmann_1_1byte__container__with__subtype.js create mode 100644 classnlohmann_1_1detail_1_1binary__reader-members.html create mode 100644 classnlohmann_1_1detail_1_1binary__reader.html create mode 100644 classnlohmann_1_1detail_1_1binary__reader.js create mode 100644 classnlohmann_1_1detail_1_1binary__writer-members.html create mode 100644 classnlohmann_1_1detail_1_1binary__writer.html create mode 100644 classnlohmann_1_1detail_1_1binary__writer.js create mode 100644 classnlohmann_1_1detail_1_1exception-members.html create mode 100644 classnlohmann_1_1detail_1_1exception.html create mode 100644 classnlohmann_1_1detail_1_1exception.js create mode 100644 classnlohmann_1_1detail_1_1exception.png create mode 100644 classnlohmann_1_1detail_1_1file__input__adapter-members.html create mode 100644 classnlohmann_1_1detail_1_1file__input__adapter.html create mode 100644 classnlohmann_1_1detail_1_1file__input__adapter.js create mode 100644 classnlohmann_1_1detail_1_1input__stream__adapter-members.html create mode 100644 classnlohmann_1_1detail_1_1input__stream__adapter.html create mode 100644 classnlohmann_1_1detail_1_1input__stream__adapter.js create mode 100644 classnlohmann_1_1detail_1_1invalid__iterator-members.html create mode 100644 classnlohmann_1_1detail_1_1invalid__iterator.html create mode 100644 classnlohmann_1_1detail_1_1invalid__iterator.png create mode 100644 classnlohmann_1_1detail_1_1iter__impl-members.html create mode 100644 classnlohmann_1_1detail_1_1iter__impl.html create mode 100644 classnlohmann_1_1detail_1_1iter__impl.js create mode 100644 classnlohmann_1_1detail_1_1iteration__proxy-members.html create mode 100644 classnlohmann_1_1detail_1_1iteration__proxy.html create mode 100644 classnlohmann_1_1detail_1_1iteration__proxy.js create mode 100644 classnlohmann_1_1detail_1_1json__reverse__iterator-members.html create mode 100644 classnlohmann_1_1detail_1_1json__reverse__iterator.html create mode 100644 classnlohmann_1_1detail_1_1json__reverse__iterator.js create mode 100644 classnlohmann_1_1detail_1_1json__sax__dom__parser-members.html create mode 100644 classnlohmann_1_1detail_1_1json__sax__dom__parser.html create mode 100644 classnlohmann_1_1detail_1_1json__sax__dom__parser.js create mode 100644 classnlohmann_1_1detail_1_1lexer-members.html create mode 100644 classnlohmann_1_1detail_1_1lexer.html create mode 100644 classnlohmann_1_1detail_1_1lexer.js create mode 100644 classnlohmann_1_1detail_1_1other__error-members.html create mode 100644 classnlohmann_1_1detail_1_1other__error.html create mode 100644 classnlohmann_1_1detail_1_1other__error.png create mode 100644 classnlohmann_1_1detail_1_1out__of__range-members.html create mode 100644 classnlohmann_1_1detail_1_1out__of__range.html create mode 100644 classnlohmann_1_1detail_1_1out__of__range.png create mode 100644 classnlohmann_1_1detail_1_1output__stream__adapter-members.html create mode 100644 classnlohmann_1_1detail_1_1output__stream__adapter.html create mode 100644 classnlohmann_1_1detail_1_1output__stream__adapter.png create mode 100644 classnlohmann_1_1detail_1_1output__string__adapter-members.html create mode 100644 classnlohmann_1_1detail_1_1output__string__adapter.html create mode 100644 classnlohmann_1_1detail_1_1output__string__adapter.png create mode 100644 classnlohmann_1_1detail_1_1output__vector__adapter-members.html create mode 100644 classnlohmann_1_1detail_1_1output__vector__adapter.html create mode 100644 classnlohmann_1_1detail_1_1output__vector__adapter.png create mode 100644 classnlohmann_1_1detail_1_1parse__error-members.html create mode 100644 classnlohmann_1_1detail_1_1parse__error.html create mode 100644 classnlohmann_1_1detail_1_1parse__error.js create mode 100644 classnlohmann_1_1detail_1_1parse__error.png create mode 100644 classnlohmann_1_1detail_1_1parser-members.html create mode 100644 classnlohmann_1_1detail_1_1parser.html create mode 100644 classnlohmann_1_1detail_1_1parser.js create mode 100644 classnlohmann_1_1detail_1_1type__error-members.html create mode 100644 classnlohmann_1_1detail_1_1type__error.html create mode 100644 classnlohmann_1_1detail_1_1type__error.png create mode 100644 classnlohmann_1_1json__pointer-members.html create mode 100644 classnlohmann_1_1json__pointer.html create mode 100644 classnlohmann_1_1json__pointer.js create mode 100644 classsound-members.html create mode 100644 classsound.html create mode 100644 classsound.js create mode 100644 closed.png create mode 100644 deprecated.html create mode 100644 dir_1e00b99eb9247d8d1f0fc0398461b1b9.html create mode 100644 dir_397d9aeee4af8edecac90968d93b57df.html create mode 100644 dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html create mode 100644 dir_510d348b6a02c69273dfea2c9e531c0f.html create mode 100644 dir_7374381ecdb819c64ee9b6ea2bd3370d.html create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.png create mode 100644 dynsections.js create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_b.html create mode 100644 functions_c.html create mode 100644 functions_d.html create mode 100644 functions_dup.js create mode 100644 functions_e.html create mode 100644 functions_f.html create mode 100644 functions_func.html create mode 100644 functions_func.js create mode 100644 functions_func_b.html create mode 100644 functions_func_c.html create mode 100644 functions_func_d.html create mode 100644 functions_func_e.html create mode 100644 functions_func_f.html create mode 100644 functions_func_g.html create mode 100644 functions_func_h.html create mode 100644 functions_func_i.html create mode 100644 functions_func_j.html create mode 100644 functions_func_k.html create mode 100644 functions_func_l.html create mode 100644 functions_func_m.html create mode 100644 functions_func_n.html create mode 100644 functions_func_o.html create mode 100644 functions_func_p.html create mode 100644 functions_func_r.html create mode 100644 functions_func_s.html create mode 100644 functions_func_t.html create mode 100644 functions_func_u.html create mode 100644 functions_func_v.html create mode 100644 functions_func_w.html create mode 100644 functions_func_~.html create mode 100644 functions_g.html create mode 100644 functions_h.html create mode 100644 functions_i.html create mode 100644 functions_j.html create mode 100644 functions_k.html create mode 100644 functions_l.html create mode 100644 functions_m.html create mode 100644 functions_n.html create mode 100644 functions_o.html create mode 100644 functions_p.html create mode 100644 functions_r.html create mode 100644 functions_rela.html create mode 100644 functions_s.html create mode 100644 functions_t.html create mode 100644 functions_type.html create mode 100644 functions_u.html create mode 100644 functions_v.html create mode 100644 functions_vars.html create mode 100644 functions_w.html create mode 100644 functions_~.html create mode 100644 hierarchy.html create mode 100644 hierarchy.js create mode 100644 index.html create mode 100644 jquery.js create mode 100644 namespaceRenderD7.html create mode 100644 namespaceRenderD7.js create mode 100644 namespaceRenderD7_1_1Lang.html create mode 100644 namespacemembers.html create mode 100644 namespacemembers_enum.html create mode 100644 namespacemembers_func.html create mode 100644 namespacemembers_type.html create mode 100644 namespacenlohmann.html create mode 100644 namespacenlohmann.js create mode 100644 namespacenlohmann_1_1detail.html create mode 100644 namespacenlohmann_1_1detail.js create mode 100644 namespacenlohmann_1_1detail_1_1dtoa__impl.html create mode 100644 namespaces.html create mode 100644 namespaces_dup.js create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 navtreeindex1.js create mode 100644 navtreeindex2.js create mode 100644 open.png create mode 100644 pages.html create mode 100644 resize.js create mode 100644 splitbar.png create mode 100644 structnlohmann_1_1adl__serializer-members.html create mode 100644 structnlohmann_1_1adl__serializer.html create mode 100644 structnlohmann_1_1detail_1_1internal__iterator-members.html create mode 100644 structnlohmann_1_1detail_1_1internal__iterator.html create mode 100644 structnlohmann_1_1detail_1_1internal__iterator.js create mode 100644 structnlohmann_1_1detail_1_1output__adapter__protocol-members.html create mode 100644 structnlohmann_1_1detail_1_1output__adapter__protocol.html create mode 100644 structnlohmann_1_1detail_1_1output__adapter__protocol.png create mode 100644 structnlohmann_1_1detail_1_1position__t-members.html create mode 100644 structnlohmann_1_1detail_1_1position__t.html create mode 100644 structnlohmann_1_1detail_1_1position__t.js create mode 100644 structnlohmann_1_1json__sax-members.html create mode 100644 structnlohmann_1_1json__sax.html create mode 100644 structnlohmann_1_1json__sax.js create mode 100644 structnlohmann_1_1ordered__map-members.html create mode 100644 structnlohmann_1_1ordered__map.html create mode 100644 structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html create mode 100644 structstd_1_1hash_3_01nlohmann_1_1json_01_4.html create mode 100644 structstd_1_1hash_3_01nlohmann_1_1json_01_4.js create mode 100644 structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4-members.html create mode 100644 structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html create mode 100644 structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.js create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css create mode 100644 unionnlohmann_1_1basic__json_1_1json__value-members.html create mode 100644 unionnlohmann_1_1basic__json_1_1json__value.html create mode 100644 unionnlohmann_1_1basic__json_1_1json__value.js diff --git a/_formulas.tex b/_formulas.tex new file mode 100644 index 0000000..0e613d6 --- /dev/null +++ b/_formulas.tex @@ -0,0 +1,15 @@ +\documentclass{article} +\usepackage{ifthen} +\usepackage{epsfig} +\usepackage[utf8]{inputenc} +\usepackage{newunicodechar} + \newunicodechar{⁻}{${}^{-}$}% Superscript minus + \newunicodechar{²}{${}^{2}$}% Superscript two + \newunicodechar{³}{${}^{3}$}% Superscript three + +\pagestyle{empty} +\begin{document} +$[-2^{53}+1, 2^{53}-1]$ +\pagebreak + +\end{document} diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..086b6c1 --- /dev/null +++ b/annotated.html @@ -0,0 +1,112 @@ + + + + + + + +Renderd7-nightly: Class List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NnlohmannNamespace for Niels Lohmann
 NdetailDetail namespace with internal helper functions
 Cbinary_readerDeserialization of CBOR, MessagePack, and UBJSON values
 Cbinary_writerSerialization to CBOR and MessagePack values
 CexceptionGeneral exception of the basic_json class
 Cfile_input_adapter
 Cinput_stream_adapter
 Cinternal_iteratorIterator value
 Cinvalid_iteratorException indicating errors with iterators
 Citer_implTemplate for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class
 Citeration_proxyProxy class for the items() function
 Cjson_reverse_iteratorTemplate for a reverse iterator class
 Cjson_sax_dom_parserSAX implementation to create a JSON value from SAX events
 ClexerLexical analysis
 Cother_errorException indicating other library errors
 Cout_of_rangeException indicating access out of the defined range
 Coutput_adapter_protocolAbstract output adapter interface
 Coutput_stream_adapterOutput adapter for output streams
 Coutput_string_adapterOutput adapter for basic_string
 Coutput_vector_adapterOutput adapter for byte vectors
 Cparse_errorException indicating a parse error
 CparserSyntax analysis
 Cposition_tStruct to capture the start position of the current token
 Ctype_errorException indicating executing a member function with a wrong type
 Cadl_serializerDefault JSONSerializer template argument
 Cbasic_jsonClass to store JSON values
 Cjson_valueJSON value
 Cbyte_container_with_subtypeInternal type for a backed binary type
 Cjson_pointerJSON Pointer
 Cjson_saxSAX interface
 Cordered_map
 NRenderD7RenderD7
 CImageImage Class
 CSheet
 CSpriteSprite Class
 Nstd
 Chash< nlohmann::json >Hash value for JSON objects
 Cless<::nlohmann::detail::value_t >
 CLog
 Csound
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 0000000..5c638a6 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,11 @@ +var annotated_dup = +[ + [ "nlohmann", "namespacenlohmann.html", "namespacenlohmann" ], + [ "RenderD7", "namespaceRenderD7.html", "namespaceRenderD7" ], + [ "std", null, [ + [ "hash< nlohmann::json >", "structstd_1_1hash_3_01nlohmann_1_1json_01_4.html", "structstd_1_1hash_3_01nlohmann_1_1json_01_4" ], + [ "less<::nlohmann::detail::value_t >", "structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html", "structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4" ] + ] ], + [ "Log", "classLog.html", "classLog" ], + [ "sound", "classsound.html", "classsound" ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..5d5c5e336a90ee8cdb6ac22c54c52ba3122e170a GIT binary patch literal 662 zcmV;H0%`q;P)YSVzFh!+CQg+?)nXQNy91i!-JKg^k#-(Jp~`2c9{!Qiso z;Rmujh4hYO9EdZc|GQ$I1j9z>yxwiZyv710u3P|4#EB=+_ z-fCeu{yYJmX#wW1ANi60{0r*!(*QsTrSF_lJO_yRBzv~Az%YSgCYD+SKHTn8_t%7V z8~5r=w#h;|HlQXkd9Au1seE0GVA08mO8oIVL*?qn$& ze~zZl?$Z``v4Y`=*y^bi=i`k|lFO=TfgopY`BJY{AFFvx0<~x*jp-rdM{3omnrHjE zT`CYFPq#6=VX~Y}L{|r9DzaPMr$vWPKo}n_FT8)LCfQ(@L-Bi9z1XWWT2@L6$#c|9 z#=<)lKT5{U%komRluHiNK&abBer{fL`jpsJ&L#6&fDQUv`*r3PJF6Ea%DLGw0HCBC wGf2jaCqAM%@;`vIv_dW?U(BUm0{}GJZ@MSK`|Sm&{r~^~07*qoM6N<$f~+ttegFUf literal 0 HcmV?d00001 diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..96bf22855da1cfb724eeeed3c5e4a3cc40f459a6 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZXipc%kP61Pb9W0iCdyr literal 0 HcmV?d00001 diff --git a/classLog-members.html b/classLog-members.html new file mode 100644 index 0000000..3979373 --- /dev/null +++ b/classLog-members.html @@ -0,0 +1,78 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Log Member List
+
+
+ +

This is the complete list of members for Log, including all inherited members.

+ + + + + + + + +
filenameLogprivate
format(const std::string &fmt_str,...)Log
Init(const char *filename)Log
Log()Log
logDate(void)Log
Write(std::string debug_text)Log
~Log()Log
+
+ + + + diff --git a/classLog.html b/classLog.html new file mode 100644 index 0000000..e729054 --- /dev/null +++ b/classLog.html @@ -0,0 +1,222 @@ + + + + + + + +Renderd7-nightly: Log Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+ +

#include <log.hpp>

+ + + + + + + + + + + + + + + +

+Public Member Functions

 Log ()
 
 ~Log ()
 
void Init (const char *filename)
 
void Write (std::string debug_text)
 
+std::string logDate (void)
 Get the date.
 
std::string format (const std::string &fmt_str,...)
 
+ + + + +

+Private Attributes

+std::string filename
 param filename the name of the logfile
 
+

Detailed Description

+

Log Class

+

Constructor & Destructor Documentation

+ +

◆ Log()

+ +
+
+ + + + + + + +
Log::Log ()
+
+

Construct

+ +
+
+ +

◆ ~Log()

+ +
+
+ + + + + + + +
Log::~Log ()
+
+

Deconstruct

+ +
+
+

Member Function Documentation

+ +

◆ Init()

+ +
+
+ + + + + + + + +
void Log::Init (const char * filename)
+
+

Init the log file

Parameters
+ + +
filenamename for the file
+
+
+ +
+
+ +

◆ Write()

+ +
+
+ + + + + + + + +
void Log::Write (std::string debug_text)
+
+

Write Text to logfile

Parameters
+ + +
debug_textyour text
+
+
+ +
+
+ +

◆ format()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::string Log::format (const std::string & fmt_str,
 ... 
)
+
+

Format to logstyle

Parameters
+ + +
fmt_strthe formatted style
+
+
+ +
+
+
+
+ + + + diff --git a/classLog.js b/classLog.js new file mode 100644 index 0000000..2020f02 --- /dev/null +++ b/classLog.js @@ -0,0 +1,10 @@ +var classLog = +[ + [ "Log", "classLog.html#af6071a60aa52b6c1b511f99b4bc1b8fe", null ], + [ "~Log", "classLog.html#a0fbfda88fbee5027c89f6eb121059360", null ], + [ "Init", "classLog.html#a7021cb723a7dff6a02f4e88705e25b13", null ], + [ "Write", "classLog.html#aef5a70d6e91909c792df54e501397d83", null ], + [ "logDate", "classLog.html#a4fa454441efc3a17a4f6d920523feb43", null ], + [ "format", "classLog.html#ae0702c44f02849b538f2d4d761b56ee2", null ], + [ "filename", "classLog.html#a855b057411fe7f5c69dd5ee80b3d0179", null ] +]; \ No newline at end of file diff --git a/classRenderD7_1_1Image-members.html b/classRenderD7_1_1Image-members.html new file mode 100644 index 0000000..56c5784 --- /dev/null +++ b/classRenderD7_1_1Image-members.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
RenderD7::Image Member List
+
+
+ +

This is the complete list of members for RenderD7::Image, including all inherited members.

+ + + + + + + +
Draw(float x, float y, float scaleX=1.0f, float scaleY=1.0f)RenderD7::Image
Get()RenderD7::Imageinline
imgRenderD7::Image
loadetRenderD7::Image
LoadPFromBuffer(const std::vector< u8 > &buffer)RenderD7::Image
LoadPng(const std::string path)RenderD7::Image
+
+ + + + diff --git a/classRenderD7_1_1Image.html b/classRenderD7_1_1Image.html new file mode 100644 index 0000000..a7074af --- /dev/null +++ b/classRenderD7_1_1Image.html @@ -0,0 +1,220 @@ + + + + + + + +Renderd7-nightly: RenderD7::Image Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
RenderD7::Image Class Reference
+
+
+ +

Image Class. + More...

+ +

#include <renderd7.hpp>

+ + + + + + + + + + + +

+Public Member Functions

void LoadPng (const std::string path)
 
void LoadPFromBuffer (const std::vector< u8 > &buffer)
 
bool Draw (float x, float y, float scaleX=1.0f, float scaleY=1.0f)
 
C2D_Image Get ()
 Get The Image. More...
 
+ + + + + + + +

+Public Attributes

+C2D_Image img
 \img this is the C2D_Image
 
+bool loadet = false
 \loadet whether the image is loadet or not
 
+

Detailed Description

+

Image Class.

+

Member Function Documentation

+ +

◆ LoadPng()

+ +
+
+ + + + + + + + +
void RenderD7::Image::LoadPng (const std::string path)
+
+

Load Image from Png path: path to png file

+ +
+
+ +

◆ LoadPFromBuffer()

+ +
+
+ + + + + + + + +
void RenderD7::Image::LoadPFromBuffer (const std::vector< u8 > & buffer)
+
+

Load the Image from buffer buffer: the frame buffer

+ +
+
+ +

◆ Draw()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool RenderD7::Image::Draw (float x,
float y,
float scaleX = 1.0f,
float scaleY = 1.0f 
)
+
+

Draw the Image directly

Parameters
+ + + + + +
xThe x position
ythe y position
scaleXx scale from 0.0 to 1.0
scaleYy scale from 0.0 to 1.0
+
+
+ +
+
+ +

◆ Get()

+ +
+
+ + + + + +
+ + + + + + + +
C2D_Image RenderD7::Image::Get ()
+
+inline
+
+ +

Get The Image.

+
Returns
C2D_Image
+ +
+
+
+
+ + + + diff --git a/classRenderD7_1_1Image.js b/classRenderD7_1_1Image.js new file mode 100644 index 0000000..fe8dbfe --- /dev/null +++ b/classRenderD7_1_1Image.js @@ -0,0 +1,9 @@ +var classRenderD7_1_1Image = +[ + [ "LoadPng", "classRenderD7_1_1Image.html#a46540860a8785e93be09b68751577f87", null ], + [ "LoadPFromBuffer", "classRenderD7_1_1Image.html#aaabaa6026391a82b18103074b0c888a1", null ], + [ "Draw", "classRenderD7_1_1Image.html#aa65130a589ba2bdf8d9388cd4c1baac3", null ], + [ "Get", "classRenderD7_1_1Image.html#a649e3ceb6376199a2c246b5a59eb3de8", null ], + [ "img", "classRenderD7_1_1Image.html#a09b03eb72a948119f3eb3a472d3d6e74", null ], + [ "loadet", "classRenderD7_1_1Image.html#a90f1afb002590c82f5667dfc8c2e74b5", null ] +]; \ No newline at end of file diff --git a/classRenderD7_1_1Sheet-members.html b/classRenderD7_1_1Sheet-members.html new file mode 100644 index 0000000..d48b4d9 --- /dev/null +++ b/classRenderD7_1_1Sheet-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
RenderD7::Sheet Member List
+
+
+ +

This is the complete list of members for RenderD7::Sheet, including all inherited members.

+ + + + +
Free()RenderD7::Sheet
Load(const char *path)RenderD7::Sheet
Sheet()RenderD7::Sheet
+
+ + + + diff --git a/classRenderD7_1_1Sheet.html b/classRenderD7_1_1Sheet.html new file mode 100644 index 0000000..d76a0da --- /dev/null +++ b/classRenderD7_1_1Sheet.html @@ -0,0 +1,110 @@ + + + + + + + +Renderd7-nightly: RenderD7::Sheet Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
RenderD7::Sheet Class Reference
+
+
+ +

#include <renderd7.hpp>

+ + + + + + + + + + +

+Public Member Functions

Sheet ()
 Construct sheet.
 
Result Load (const char *path)
 
+void Free ()
 Unload the Spritesheet.
 
+

Detailed Description

+

The Spritesheet Class

+

Member Function Documentation

+ +

◆ Load()

+ +
+
+ + + + + + + + +
Result RenderD7::Sheet::Load (const char * path)
+
+

Load a Sritesheet path: Path to the Spritesheet (.t3x)

+ +
+
+
+
+ + + + diff --git a/classRenderD7_1_1Sheet.js b/classRenderD7_1_1Sheet.js new file mode 100644 index 0000000..be53da7 --- /dev/null +++ b/classRenderD7_1_1Sheet.js @@ -0,0 +1,6 @@ +var classRenderD7_1_1Sheet = +[ + [ "Sheet", "classRenderD7_1_1Sheet.html#a16e025243308080896d6f2a95c58a684", null ], + [ "Load", "classRenderD7_1_1Sheet.html#a869b5bb61b4197eee2b3258e2f3b64e5", null ], + [ "Free", "classRenderD7_1_1Sheet.html#a950debb41e4b392a4a80a9607f4ae7cd", null ] +]; \ No newline at end of file diff --git a/classRenderD7_1_1Sprite-members.html b/classRenderD7_1_1Sprite-members.html new file mode 100644 index 0000000..2b31b06 --- /dev/null +++ b/classRenderD7_1_1Sprite-members.html @@ -0,0 +1,72 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
RenderD7::Sprite Member List
+
+
+ +

This is the complete list of members for RenderD7::Sprite, including all inherited members.

+ + +
Sprite()RenderD7::Sprite
+
+ + + + diff --git a/classRenderD7_1_1Sprite.html b/classRenderD7_1_1Sprite.html new file mode 100644 index 0000000..807eda1 --- /dev/null +++ b/classRenderD7_1_1Sprite.html @@ -0,0 +1,89 @@ + + + + + + + +Renderd7-nightly: RenderD7::Sprite Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
RenderD7::Sprite Class Reference
+
+
+ +

Sprite Class. + More...

+ +

#include <renderd7.hpp>

+ +

Inherited by RenderD7::SpriteSheetAnimation.

+ + + + + +

+Public Member Functions

Sprite ()
 Construct Sprite.
 
+

Detailed Description

+

Sprite Class.

+
+
+ + + + diff --git a/classRenderD7_1_1Sprite.js b/classRenderD7_1_1Sprite.js new file mode 100644 index 0000000..e278bbf --- /dev/null +++ b/classRenderD7_1_1Sprite.js @@ -0,0 +1,4 @@ +var classRenderD7_1_1Sprite = +[ + [ "Sprite", "classRenderD7_1_1Sprite.html#ae2924bcf030217135967253672e2b33e", null ] +]; \ No newline at end of file diff --git a/classes.html b/classes.html new file mode 100644 index 0000000..939c055 --- /dev/null +++ b/classes.html @@ -0,0 +1,147 @@ + + + + + + + +Renderd7-nightly: Class Index + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Class Index
+
+
+
a | b | e | f | h | i | j | l | o | p | s | t
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  a  
+
  f  
+
iter_impl (nlohmann::detail)   lexer (nlohmann::detail)   parser (nlohmann::detail)   
iteration_proxy (nlohmann::detail)   Log   position_t (nlohmann::detail)   
adl_serializer (nlohmann)   file_input_adapter (nlohmann::detail)   
  j  
+
  o  
+
  s  
+
  b  
+
  h  
+
json_pointer (nlohmann)   ordered_map (nlohmann)   Sheet (RenderD7)   
basic_json (nlohmann)   hash< nlohmann::json > (std)   json_reverse_iterator (nlohmann::detail)   other_error (nlohmann::detail)   sound   
binary_reader (nlohmann::detail)   
  i  
+
json_sax (nlohmann)   out_of_range (nlohmann::detail)   Sprite (RenderD7)   
binary_writer (nlohmann::detail)   json_sax_dom_parser (nlohmann::detail)   output_adapter_protocol (nlohmann::detail)   
  t  
+
byte_container_with_subtype (nlohmann)   Image (RenderD7)   basic_json::json_value (nlohmann)   output_stream_adapter (nlohmann::detail)   
  e  
+
input_stream_adapter (nlohmann::detail)   
  l  
+
output_string_adapter (nlohmann::detail)   type_error (nlohmann::detail)   
internal_iterator (nlohmann::detail)   output_vector_adapter (nlohmann::detail)   
exception (nlohmann::detail)   invalid_iterator (nlohmann::detail)   less<::nlohmann::detail::value_t > (std)   
  p  
+
parse_error (nlohmann::detail)   
+
a | b | e | f | h | i | j | l | o | p | s | t
+
+
+ + + + diff --git a/classnlohmann_1_1basic__json-members.html b/classnlohmann_1_1basic__json-members.html new file mode 100644 index 0000000..4cd5912 --- /dev/null +++ b/classnlohmann_1_1basic__json-members.html @@ -0,0 +1,299 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::basic_json Member List
+
+
+ +

This is the complete list of members for nlohmann::basic_json, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
accept(InputType &&i, const bool ignore_comments=false)nlohmann::basic_jsoninlinestatic
allocator_type typedefnlohmann::basic_json
array(initializer_list_t init={})nlohmann::basic_jsoninlinestatic
array_t typedefnlohmann::basic_json
assert_invariant() const noexceptnlohmann::basic_jsoninlineprivate
at(size_type idx)nlohmann::basic_jsoninline
at(size_type idx) constnlohmann::basic_jsoninline
at(const typename object_t::key_type &key)nlohmann::basic_jsoninline
at(const typename object_t::key_type &key) constnlohmann::basic_jsoninline
at(const json_pointer &ptr)nlohmann::basic_jsoninline
at(const json_pointer &ptr) constnlohmann::basic_jsoninline
back()nlohmann::basic_jsoninline
back() constnlohmann::basic_jsoninline
basic_json(const value_t v)nlohmann::basic_jsoninline
basic_json(std::nullptr_t=nullptr) noexceptnlohmann::basic_jsoninline
basic_json(CompatibleType &&val) noexcept(noexcept(JSONSerializer< U >::to_json(std::declval< basic_json_t & >(), std::forward< CompatibleType >(val))))nlohmann::basic_jsoninline
basic_json(const BasicJsonType &val)nlohmann::basic_jsoninline
basic_json(initializer_list_t init, bool type_deduction=true, value_t manual_type=value_t::array)nlohmann::basic_jsoninline
basic_json(size_type cnt, const basic_json &val)nlohmann::basic_jsoninline
basic_json(InputIT first, InputIT last)nlohmann::basic_jsoninline
basic_json(const basic_json &other)nlohmann::basic_jsoninline
basic_json(basic_json &&other) noexceptnlohmann::basic_jsoninline
basic_json_t typedefnlohmann::basic_jsonprivate
begin() noexceptnlohmann::basic_jsoninline
begin() const noexceptnlohmann::basic_jsoninline
binary(const typename binary_t::container_type &init)nlohmann::basic_jsoninlinestatic
binary(const typename binary_t::container_type &init, std::uint8_t subtype)nlohmann::basic_jsoninlinestatic
binary(typename binary_t::container_type &&init)nlohmann::basic_jsoninlinestatic
binary(typename binary_t::container_type &&init, std::uint8_t subtype)nlohmann::basic_jsoninlinestatic
binary_t typedefnlohmann::basic_json
boolean_t typedefnlohmann::basic_json
cbegin() const noexceptnlohmann::basic_jsoninline
cbor_tag_handler_t typedefnlohmann::basic_json
cend() const noexceptnlohmann::basic_jsoninline
clear() noexceptnlohmann::basic_jsoninline
const_iterator typedefnlohmann::basic_json
const_pointer typedefnlohmann::basic_json
const_reference typedefnlohmann::basic_json
const_reverse_iterator typedefnlohmann::basic_json
contains(KeyT &&key) constnlohmann::basic_jsoninline
contains(const json_pointer &ptr) constnlohmann::basic_jsoninline
count(KeyT &&key) constnlohmann::basic_jsoninline
crbegin() const noexceptnlohmann::basic_jsoninline
create(Args &&... args)nlohmann::basic_jsoninlineprivatestatic
crend() const noexceptnlohmann::basic_jsoninline
diff(const basic_json &source, const basic_json &target, const std::string &path="")nlohmann::basic_jsoninlinestatic
difference_type typedefnlohmann::basic_json
dump(const int indent=-1, const char indent_char=' ', const bool ensure_ascii=false, const error_handler_t error_handler=error_handler_t::strict) constnlohmann::basic_jsoninline
emplace(Args &&... args)nlohmann::basic_jsoninline
emplace_back(Args &&... args)nlohmann::basic_jsoninline
empty() const noexceptnlohmann::basic_jsoninline
end() noexceptnlohmann::basic_jsoninline
end() const noexceptnlohmann::basic_jsoninline
erase(IteratorType pos)nlohmann::basic_jsoninline
erase(IteratorType first, IteratorType last)nlohmann::basic_jsoninline
erase(const typename object_t::key_type &key)nlohmann::basic_jsoninline
erase(const size_type idx)nlohmann::basic_jsoninline
error_handler_t typedefnlohmann::basic_json
exception typedefnlohmann::basic_json
find(KeyT &&key)nlohmann::basic_jsoninline
find(KeyT &&key) constnlohmann::basic_jsoninline
flatten() constnlohmann::basic_jsoninline
from_bson(InputType &&i, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
from_bson(IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
from_cbor(InputType &&i, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)nlohmann::basic_jsoninlinestatic
from_cbor(IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)nlohmann::basic_jsoninlinestatic
from_msgpack(InputType &&i, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
from_msgpack(IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
from_ubjson(InputType &&i, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
from_ubjson(IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)nlohmann::basic_jsoninlinestatic
front()nlohmann::basic_jsoninline
front() constnlohmann::basic_jsoninline
get() constnlohmann::basic_jsoninline
get() constnlohmann::basic_jsoninline
get() const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), std::declval< ValueType & >())))nlohmann::basic_jsoninline
get() const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >())))nlohmann::basic_jsoninline
get() noexcept -> decltype(std::declval< basic_json_t & >().template get_ptr< PointerType >())nlohmann::basic_jsoninline
get() const noexcept -> decltype(std::declval< const basic_json_t & >().template get_ptr< PointerType >())nlohmann::basic_jsoninline
get_allocator()nlohmann::basic_jsoninlinestatic
get_binary()nlohmann::basic_jsoninline
get_binary() constnlohmann::basic_jsoninline
get_impl(boolean_t *) constnlohmann::basic_jsoninlineprivate
get_impl_ptr(object_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const object_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(array_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const array_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(string_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const string_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(boolean_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const boolean_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(number_integer_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const number_integer_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(number_unsigned_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const number_unsigned_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(number_float_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const number_float_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(binary_t *) noexceptnlohmann::basic_jsoninlineprivate
get_impl_ptr(const binary_t *) const noexceptnlohmann::basic_jsoninlineprivate
get_ptr() noexcept -> decltype(std::declval< basic_json_t & >().get_impl_ptr(std::declval< PointerType >()))nlohmann::basic_jsoninline
get_ptr() const noexcept -> decltype(std::declval< const basic_json_t & >().get_impl_ptr(std::declval< PointerType >()))nlohmann::basic_jsoninline
get_ref()nlohmann::basic_jsoninline
get_ref() constnlohmann::basic_jsoninline
get_ref_impl(ThisType &obj)nlohmann::basic_jsoninlineprivatestatic
get_to(ValueType &v) const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), v)))nlohmann::basic_jsoninline
initializer_list_t typedefnlohmann::basic_json
insert(const_iterator pos, const basic_json &val)nlohmann::basic_jsoninline
insert(const_iterator pos, basic_json &&val)nlohmann::basic_jsoninline
insert(const_iterator pos, size_type cnt, const basic_json &val)nlohmann::basic_jsoninline
insert(const_iterator pos, const_iterator first, const_iterator last)nlohmann::basic_jsoninline
insert(const_iterator pos, initializer_list_t ilist)nlohmann::basic_jsoninline
insert(const_iterator first, const_iterator last)nlohmann::basic_jsoninline
insert_iterator(const_iterator pos, Args &&... args)nlohmann::basic_jsoninline
invalid_iterator typedefnlohmann::basic_json
is_array() const noexceptnlohmann::basic_jsoninline
is_binary() const noexceptnlohmann::basic_jsoninline
is_boolean() const noexceptnlohmann::basic_jsoninline
is_discarded() const noexceptnlohmann::basic_jsoninline
is_null() const noexceptnlohmann::basic_jsoninline
is_number() const noexceptnlohmann::basic_jsoninline
is_number_float() const noexceptnlohmann::basic_jsoninline
is_number_integer() const noexceptnlohmann::basic_jsoninline
is_number_unsigned() const noexceptnlohmann::basic_jsoninline
is_object() const noexceptnlohmann::basic_jsoninline
is_primitive() const noexceptnlohmann::basic_jsoninline
is_string() const noexceptnlohmann::basic_jsoninline
is_structured() const noexceptnlohmann::basic_jsoninline
items() noexceptnlohmann::basic_jsoninline
items() const noexceptnlohmann::basic_jsoninline
iterator typedefnlohmann::basic_json
iterator_wrapper(reference ref) noexceptnlohmann::basic_jsoninlinestatic
iterator_wrapper(const_reference ref) noexceptnlohmann::basic_jsoninlinestatic
json_pointer typedefnlohmann::basic_json
json_sax_t typedefnlohmann::basic_json
m_typenlohmann::basic_jsonprivate
m_valuenlohmann::basic_jsonprivate
max_size() const noexceptnlohmann::basic_jsoninline
merge_patch(const basic_json &apply_patch)nlohmann::basic_jsoninline
meta()nlohmann::basic_jsoninlinestatic
number_float_t typedefnlohmann::basic_json
number_integer_t typedefnlohmann::basic_json
number_unsigned_t typedefnlohmann::basic_json
object(initializer_list_t init={})nlohmann::basic_jsoninlinestatic
object_t typedefnlohmann::basic_json
operator value_t() const noexceptnlohmann::basic_jsoninline
operator ValueType() constnlohmann::basic_jsoninline
operator!=(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator!=(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator!=(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator+=(basic_json &&val)nlohmann::basic_jsoninline
operator+=(const basic_json &val)nlohmann::basic_jsoninline
operator+=(const typename object_t::value_type &val)nlohmann::basic_jsoninline
operator+=(initializer_list_t init)nlohmann::basic_jsoninline
operator<(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator<(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator<(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator<<(std::ostream &o, const basic_json &j)nlohmann::basic_jsonfriend
operator<<(basic_json &j, std::istream &i)nlohmann::basic_jsonfriend
operator<=(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator<=(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator<=(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator=(basic_json other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)nlohmann::basic_jsoninline
operator==(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator==(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator==(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator>(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator>(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator>(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator>=(const_reference lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator>=(const_reference lhs, const ScalarType rhs) noexceptnlohmann::basic_jsonfriend
operator>=(const ScalarType lhs, const_reference rhs) noexceptnlohmann::basic_jsonfriend
operator>>(const basic_json &j, std::ostream &o)nlohmann::basic_jsonfriend
operator>>(std::istream &i, basic_json &j)nlohmann::basic_jsonfriend
operator[](size_type idx)nlohmann::basic_jsoninline
operator[](size_type idx) constnlohmann::basic_jsoninline
operator[](const typename object_t::key_type &key)nlohmann::basic_jsoninline
operator[](const typename object_t::key_type &key) constnlohmann::basic_jsoninline
operator[](T *key)nlohmann::basic_jsoninline
operator[](T *key) constnlohmann::basic_jsoninline
operator[](const json_pointer &ptr)nlohmann::basic_jsoninline
operator[](const json_pointer &ptr) constnlohmann::basic_jsoninline
other_error typedefnlohmann::basic_json
out_of_range typedefnlohmann::basic_json
parse(InputType &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)nlohmann::basic_jsoninlinestatic
parse(IteratorType first, IteratorType last, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)nlohmann::basic_jsoninlinestatic
parse_error typedefnlohmann::basic_json
parse_event_t typedefnlohmann::basic_json
parser_callback_t typedefnlohmann::basic_json
patch(const basic_json &json_patch) constnlohmann::basic_jsoninline
pointer typedefnlohmann::basic_json
push_back(basic_json &&val)nlohmann::basic_jsoninline
push_back(const basic_json &val)nlohmann::basic_jsoninline
push_back(const typename object_t::value_type &val)nlohmann::basic_jsoninline
push_back(initializer_list_t init)nlohmann::basic_jsoninline
rbegin() noexceptnlohmann::basic_jsoninline
rbegin() const noexceptnlohmann::basic_jsoninline
reference typedefnlohmann::basic_json
rend() noexceptnlohmann::basic_jsoninline
rend() const noexceptnlohmann::basic_jsoninline
reverse_iterator typedefnlohmann::basic_json
sax_parse(InputType &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)nlohmann::basic_jsoninlinestatic
size() const noexceptnlohmann::basic_jsoninline
size_type typedefnlohmann::basic_json
string_t typedefnlohmann::basic_json
swap(reference other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)nlohmann::basic_jsoninline
swap(reference left, reference right) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)nlohmann::basic_jsonfriend
swap(array_t &other)nlohmann::basic_jsoninline
swap(object_t &other)nlohmann::basic_jsoninline
swap(string_t &other)nlohmann::basic_jsoninline
swap(binary_t &other)nlohmann::basic_jsoninline
swap(typename binary_t::container_type &other)nlohmann::basic_jsoninline
to_bson(const basic_json &j)nlohmann::basic_jsoninlinestatic
to_bson(const basic_json &j, detail::output_adapter< uint8_t > o)nlohmann::basic_jsoninlinestatic
to_bson(const basic_json &j, detail::output_adapter< char > o)nlohmann::basic_jsoninlinestatic
to_cbor(const basic_json &j)nlohmann::basic_jsoninlinestatic
to_msgpack(const basic_json &j)nlohmann::basic_jsoninlinestatic
to_ubjson(const basic_json &j, const bool use_size=false, const bool use_type=false)nlohmann::basic_jsoninlinestatic
type() const noexceptnlohmann::basic_jsoninline
type_error typedefnlohmann::basic_json
type_name() const noexceptnlohmann::basic_jsoninline
unflatten() constnlohmann::basic_jsoninline
update(const_reference j)nlohmann::basic_jsoninline
update(const_iterator first, const_iterator last)nlohmann::basic_jsoninline
value(const typename object_t::key_type &key, const ValueType &default_value) constnlohmann::basic_jsoninline
value(const typename object_t::key_type &key, const char *default_value) constnlohmann::basic_jsoninline
value(const json_pointer &ptr, const ValueType &default_value) constnlohmann::basic_jsoninline
value(const json_pointer &ptr, const char *default_value) constnlohmann::basic_jsoninline
value_type typedefnlohmann::basic_json
~basic_json() noexceptnlohmann::basic_jsoninline
+
+ + + + diff --git a/classnlohmann_1_1basic__json.html b/classnlohmann_1_1basic__json.html new file mode 100644 index 0000000..0c7f1cf --- /dev/null +++ b/classnlohmann_1_1basic__json.html @@ -0,0 +1,11151 @@ + + + + + + + +Renderd7-nightly: nlohmann::basic_json Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+ +

a class to store JSON values + More...

+ +

#include <json.hpp>

+ + + + + +

+Classes

union  json_value
 a JSON value More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+using json_pointer = ::nlohmann::json_pointer< basic_json >
 JSON Pointer, see nlohmann::json_pointer.
 
+using error_handler_t = detail::error_handler_t
 how to treat decoding errors
 
+using cbor_tag_handler_t = detail::cbor_tag_handler_t
 how to treat CBOR tags
 
+using initializer_list_t = std::initializer_list< detail::json_ref< basic_json > >
 helper type for initializer lists of basic_json values
 
+using json_sax_t = json_sax< basic_json >
 SAX interface type, see nlohmann::json_sax.
 
using parse_event_t = detail::parse_event_t
 parser event types More...
 
using parser_callback_t = detail::parser_callback_t< basic_json >
 per-element parser callback type More...
 
+ + + + +

+Public Member Functions

const JSON_HEDLEY_RETURNS_NON_NULL char * type_name () const noexcept
 return the type as string More...
 
+ + + + + + + +

+Static Public Member Functions

+static allocator_type get_allocator ()
 returns the allocator associated with the container
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json meta ()
 returns version information on the library More...
 
+ + + + +

+Private Types

+using basic_json_t = NLOHMANN_BASIC_JSON_TPL
 workaround type for MSVC
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

void assert_invariant () const noexcept
 checks the class invariants More...
 
+boolean_t get_impl (boolean_t *) const
 get a boolean (explicit)
 
+object_tget_impl_ptr (object_t *) noexcept
 get a pointer to the value (object)
 
+constexpr const object_tget_impl_ptr (const object_t *) const noexcept
 get a pointer to the value (object)
 
+array_tget_impl_ptr (array_t *) noexcept
 get a pointer to the value (array)
 
+constexpr const array_tget_impl_ptr (const array_t *) const noexcept
 get a pointer to the value (array)
 
+string_tget_impl_ptr (string_t *) noexcept
 get a pointer to the value (string)
 
+constexpr const string_tget_impl_ptr (const string_t *) const noexcept
 get a pointer to the value (string)
 
+boolean_tget_impl_ptr (boolean_t *) noexcept
 get a pointer to the value (boolean)
 
+constexpr const boolean_tget_impl_ptr (const boolean_t *) const noexcept
 get a pointer to the value (boolean)
 
+number_integer_tget_impl_ptr (number_integer_t *) noexcept
 get a pointer to the value (integer number)
 
+constexpr const number_integer_tget_impl_ptr (const number_integer_t *) const noexcept
 get a pointer to the value (integer number)
 
+number_unsigned_tget_impl_ptr (number_unsigned_t *) noexcept
 get a pointer to the value (unsigned number)
 
+constexpr const number_unsigned_tget_impl_ptr (const number_unsigned_t *) const noexcept
 get a pointer to the value (unsigned number)
 
+number_float_tget_impl_ptr (number_float_t *) noexcept
 get a pointer to the value (floating-point number)
 
+constexpr const number_float_tget_impl_ptr (const number_float_t *) const noexcept
 get a pointer to the value (floating-point number)
 
+binary_tget_impl_ptr (binary_t *) noexcept
 get a pointer to the value (binary)
 
+constexpr const binary_tget_impl_ptr (const binary_t *) const noexcept
 get a pointer to the value (binary)
 
+ + + + + + + + + +

+Static Private Member Functions

+template<typename T , typename... Args>
static JSON_HEDLEY_RETURNS_NON_NULL T * create (Args &&... args)
 helper for exception-safe object creation
 
template<typename ReferenceType , typename ThisType >
static ReferenceType get_ref_impl (ThisType &obj)
 helper function to implement get_ref() More...
 
+ + + + + + + +

+Private Attributes

+value_t m_type = value_t::null
 the type of the current element
 
+json_value m_value = {}
 the value of the current element
 
+ + + + + + + + + + + + + + + + + + + + +

+exceptions

Classes to implement user-defined exceptions.

+
using exception = detail::exception
 general exception of the basic_json class More...
 
using parse_error = detail::parse_error
 exception indicating a parse error More...
 
using invalid_iterator = detail::invalid_iterator
 exception indicating errors with iterators More...
 
using type_error = detail::type_error
 exception indicating executing a member function with a wrong type More...
 
using out_of_range = detail::out_of_range
 exception indicating access out of the defined range More...
 
using other_error = detail::other_error
 exception indicating other library errors More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+container types

The canonic container types to use basic_json like any other STL container.

+
+using value_type = basic_json
 the type of elements in a basic_json container
 
+using reference = value_type &
 the type of an element reference
 
+using const_reference = const value_type &
 the type of an element const reference
 
+using difference_type = std::ptrdiff_t
 a type to represent differences between iterators
 
+using size_type = std::size_t
 a type to represent container sizes
 
+using allocator_type = AllocatorType< basic_json >
 the allocator type
 
+using pointer = typename std::allocator_traits< allocator_type >::pointer
 the type of an element pointer
 
+using const_pointer = typename std::allocator_traits< allocator_type >::const_pointer
 the type of an element const pointer
 
+using iterator = iter_impl< basic_json >
 an iterator for a basic_json container
 
+using const_iterator = iter_impl< const basic_json >
 a const iterator for a basic_json container
 
+using reverse_iterator = json_reverse_iterator< typename basic_json::iterator >
 a reverse iterator for a basic_json container
 
+using const_reverse_iterator = json_reverse_iterator< typename basic_json::const_iterator >
 a const reverse iterator for a basic_json container
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+JSON value data types

The data types to store a JSON value. These types are derived from the template arguments passed to class basic_json.

+
+using object_comparator_t = std::less< StringType >
 
using object_t = ObjectType< StringType, basic_json, object_comparator_t, AllocatorType< std::pair< const StringType, basic_json > >>
 a type for an object More...
 
using array_t = ArrayType< basic_json, AllocatorType< basic_json > >
 a type for an array More...
 
using string_t = StringType
 a type for a string More...
 
using boolean_t = BooleanType
 a type for a boolean More...
 
using number_integer_t = NumberIntegerType
 a type for a number (integer) More...
 
using number_unsigned_t = NumberUnsignedType
 a type for a number (unsigned) More...
 
using number_float_t = NumberFloatType
 a type for a number (floating-point) More...
 
using binary_t = nlohmann::byte_container_with_subtype< BinaryType >
 a type for a packed binary type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+constructors and destructors

Constructors of class basic_json, copy/move constructor, copy assignment, static functions creating objects, and the destructor.

+
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json binary (const typename binary_t::container_type &init)
 explicitly create a binary array (without subtype) More...
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json binary (const typename binary_t::container_type &init, std::uint8_t subtype)
 explicitly create a binary array (with subtype) More...
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json binary (typename binary_t::container_type &&init)
 explicitly create a binary array (without subtype) More...
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json binary (typename binary_t::container_type &&init, std::uint8_t subtype)
 explicitly create a binary array (with subtype) More...
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json array (initializer_list_t init={})
 explicitly create an array from an initializer list More...
 
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json object (initializer_list_t init={})
 explicitly create an object from an initializer list More...
 
 basic_json (const value_t v)
 create an empty value with a given type More...
 
 basic_json (std::nullptr_t=nullptr) noexcept
 create a null object More...
 
template<typename CompatibleType , typename U = detail::uncvref_t<CompatibleType>, detail::enable_if_t< !detail::is_basic_json< U >::value &&detail::is_compatible_type< basic_json_t, U >::value, int > = 0>
 basic_json (CompatibleType &&val) noexcept(noexcept(JSONSerializer< U >::to_json(std::declval< basic_json_t & >(), std::forward< CompatibleType >(val))))
 create a JSON value More...
 
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value &&!std::is_same< basic_json, BasicJsonType >::value, int > = 0>
 basic_json (const BasicJsonType &val)
 create a JSON value from an existing one More...
 
 basic_json (initializer_list_t init, bool type_deduction=true, value_t manual_type=value_t::array)
 create a container (array or object) from an initializer list More...
 
 basic_json (size_type cnt, const basic_json &val)
 construct an array with count copies of given value More...
 
template<class InputIT , typename std::enable_if< std::is_same< InputIT, typename basic_json_t::iterator >::value||std::is_same< InputIT, typename basic_json_t::const_iterator >::value, int >::type = 0>
 basic_json (InputIT first, InputIT last)
 construct a JSON container given an iterator range More...
 
+template<typename JsonRef , detail::enable_if_t< detail::conjunction< detail::is_json_ref< JsonRef >, std::is_same< typename JsonRef::value_type, basic_json >>::value, int > = 0>
 basic_json (const JsonRef &ref)
 
 basic_json (const basic_json &other)
 copy constructor More...
 
 basic_json (basic_json &&other) noexcept
 move constructor More...
 
basic_jsonoperator= (basic_json other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)
 copy assignment More...
 
 ~basic_json () noexcept
 destructor More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+object inspection

Functions to inspect the type of a JSON value.

+
string_t dump (const int indent=-1, const char indent_char=' ', const bool ensure_ascii=false, const error_handler_t error_handler=error_handler_t::strict) const
 serialization More...
 
constexpr value_t type () const noexcept
 return the type of the JSON value (explicit) More...
 
constexpr bool is_primitive () const noexcept
 return whether type is primitive More...
 
constexpr bool is_structured () const noexcept
 return whether type is structured More...
 
constexpr bool is_null () const noexcept
 return whether value is null More...
 
constexpr bool is_boolean () const noexcept
 return whether value is a boolean More...
 
constexpr bool is_number () const noexcept
 return whether value is a number More...
 
constexpr bool is_number_integer () const noexcept
 return whether value is an integer number More...
 
constexpr bool is_number_unsigned () const noexcept
 return whether value is an unsigned integer number More...
 
constexpr bool is_number_float () const noexcept
 return whether value is a floating-point number More...
 
constexpr bool is_object () const noexcept
 return whether value is an object More...
 
constexpr bool is_array () const noexcept
 return whether value is an array More...
 
constexpr bool is_string () const noexcept
 return whether value is a string More...
 
constexpr bool is_binary () const noexcept
 return whether value is a binary array More...
 
constexpr bool is_discarded () const noexcept
 return whether value is discarded More...
 
constexpr operator value_t () const noexcept
 return the type of the JSON value (implicit) More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+value access

Direct access to the stored value of a JSON value.

+
template<typename BasicJsonType , detail::enable_if_t< std::is_same< typename std::remove_const< BasicJsonType >::type, basic_json_t >::value, int > = 0>
basic_json get () const
 get special-case overload More...
 
template<typename BasicJsonType , detail::enable_if_t< !std::is_same< BasicJsonType, basic_json >::value &&detail::is_basic_json< BasicJsonType >::value, int > = 0>
BasicJsonType get () const
 get special-case overload More...
 
template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t< !detail::is_basic_json< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value &&!detail::has_non_default_from_json< basic_json_t, ValueType >::value, int > = 0>
ValueType get () const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), std::declval< ValueType & >())))
 get a value (explicit) More...
 
template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t< !std::is_same< basic_json_t, ValueType >::value &&detail::has_non_default_from_json< basic_json_t, ValueType >::value, int > = 0>
ValueType get () const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >())))
 get a value (explicit); special case More...
 
template<typename ValueType , detail::enable_if_t< !detail::is_basic_json< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value, int > = 0>
ValueType & get_to (ValueType &v) const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), v)))
 get a value (explicit) More...
 
+template<typename ValueType , detail::enable_if_t< detail::is_basic_json< ValueType >::value, int > = 0>
ValueType & get_to (ValueType &v) const
 
+template<typename T , std::size_t N, typename Array = T (&)[N], detail::enable_if_t< detail::has_from_json< basic_json_t, Array >::value, int > = 0>
Array get_to (T(&v)[N]) const noexcept(noexcept(JSONSerializer< Array >::from_json(std::declval< const basic_json_t & >(), v)))
 
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
auto get_ptr () noexcept -> decltype(std::declval< basic_json_t & >().get_impl_ptr(std::declval< PointerType >()))
 get a pointer value (implicit) More...
 
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value &&std::is_const< typename std::remove_pointer< PointerType >::type >::value, int >::type = 0>
constexpr auto get_ptr () const noexcept -> decltype(std::declval< const basic_json_t & >().get_impl_ptr(std::declval< PointerType >()))
 get a pointer value (implicit) More...
 
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
auto get () noexcept -> decltype(std::declval< basic_json_t & >().template get_ptr< PointerType >())
 get a pointer value (explicit) More...
 
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
constexpr auto get () const noexcept -> decltype(std::declval< const basic_json_t & >().template get_ptr< PointerType >())
 get a pointer value (explicit) More...
 
template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value, int >::type = 0>
ReferenceType get_ref ()
 get a reference value (implicit) More...
 
template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value &&std::is_const< typename std::remove_reference< ReferenceType >::type >::value, int >::type = 0>
ReferenceType get_ref () const
 get a reference value (implicit) More...
 
template<typename ValueType , typename std::enable_if< !std::is_pointer< ValueType >::value &&!std::is_same< ValueType, detail::json_ref< basic_json >>::value &&!std::is_same< ValueType, typename string_t::value_type >::value &&!detail::is_basic_json< ValueType >::value &&!std::is_same< ValueType, std::initializer_list< typename string_t::value_type >>::value &&detail::is_detected< detail::get_template_function, const basic_json_t &, ValueType >::value, int >::type = 0>
JSON_EXPLICIT operator ValueType () const
 get a value (implicit) More...
 
binary_tget_binary ()
 
const binary_tget_binary () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+element access

Access to the JSON value.

+
reference at (size_type idx)
 access specified array element with bounds checking More...
 
const_reference at (size_type idx) const
 access specified array element with bounds checking More...
 
reference at (const typename object_t::key_type &key)
 access specified object element with bounds checking More...
 
const_reference at (const typename object_t::key_type &key) const
 access specified object element with bounds checking More...
 
reference operator[] (size_type idx)
 access specified array element More...
 
const_reference operator[] (size_type idx) const
 access specified array element More...
 
reference operator[] (const typename object_t::key_type &key)
 access specified object element More...
 
const_reference operator[] (const typename object_t::key_type &key) const
 read-only access specified object element More...
 
template<typename T >
reference operator[] (T *key)
 access specified object element More...
 
template<typename T >
const_reference operator[] (T *key) const
 read-only access specified object element More...
 
template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, ValueType >::value, int >::type = 0>
ValueType value (const typename object_t::key_type &key, const ValueType &default_value) const
 access specified object element with default value More...
 
string_t value (const typename object_t::key_type &key, const char *default_value) const
 overload for a default value of type const char* More...
 
template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value, int >::type = 0>
ValueType value (const json_pointer &ptr, const ValueType &default_value) const
 access specified object element via JSON Pointer with default value More...
 
string_t value (const json_pointer &ptr, const char *default_value) const
 overload for a default value of type const char* More...
 
reference front ()
 access the first element More...
 
const_reference front () const
 access the first element More...
 
reference back ()
 access the last element More...
 
const_reference back () const
 access the last element More...
 
template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0>
IteratorType erase (IteratorType pos)
 remove element given an iterator More...
 
template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0>
IteratorType erase (IteratorType first, IteratorType last)
 remove elements given an iterator range More...
 
size_type erase (const typename object_t::key_type &key)
 remove element from a JSON object given a key More...
 
void erase (const size_type idx)
 remove element from a JSON array given an index More...
 
+ + + + + + + + + + + + + + + + + + + + +

+lookup

template<typename KeyT >
iterator find (KeyT &&key)
 find an element in a JSON object More...
 
template<typename KeyT >
const_iterator find (KeyT &&key) const
 find an element in a JSON object More...
 
template<typename KeyT >
size_type count (KeyT &&key) const
 returns the number of occurrences of a key in a JSON object More...
 
template<typename KeyT , typename std::enable_if< !std::is_same< typename std::decay< KeyT >::type, json_pointer >::value, int >::type = 0>
bool contains (KeyT &&key) const
 check the existence of an element in a JSON object More...
 
bool contains (const json_pointer &ptr) const
 check the existence of an element in a JSON object given a JSON pointer More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+iterators

static iteration_proxy< iteratoriterator_wrapper (reference ref) noexcept
 wrapper to access iterator member functions in range-based for More...
 
static iteration_proxy< const_iteratoriterator_wrapper (const_reference ref) noexcept
 wrapper to access iterator member functions in range-based for More...
 
iterator begin () noexcept
 returns an iterator to the first element More...
 
const_iterator begin () const noexcept
 returns a const iterator to the first element More...
 
const_iterator cbegin () const noexcept
 returns a const iterator to the first element More...
 
iterator end () noexcept
 returns an iterator to one past the last element More...
 
const_iterator end () const noexcept
 returns a const iterator to one past the last element More...
 
const_iterator cend () const noexcept
 returns a const iterator to one past the last element More...
 
reverse_iterator rbegin () noexcept
 returns an iterator to the reverse-beginning More...
 
const_reverse_iterator rbegin () const noexcept
 returns a const reverse iterator to the last element More...
 
reverse_iterator rend () noexcept
 returns an iterator to the reverse-end More...
 
const_reverse_iterator rend () const noexcept
 returns a const reverse iterator to one before the first More...
 
const_reverse_iterator crbegin () const noexcept
 returns a const reverse iterator to the last element More...
 
const_reverse_iterator crend () const noexcept
 returns a const reverse iterator to one before the first More...
 
iteration_proxy< iteratoritems () noexcept
 helper to access iterator member functions in range-based for More...
 
iteration_proxy< const_iteratoritems () const noexcept
 helper to access iterator member functions in range-based for More...
 
+ + + + + + + + + + +

+capacity

bool empty () const noexcept
 checks whether the container is empty. More...
 
size_type size () const noexcept
 returns the number of elements More...
 
size_type max_size () const noexcept
 returns the maximum possible number of elements More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+modifiers

void swap (reference left, reference right) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)
 exchanges the values More...
 
void clear () noexcept
 clears the contents More...
 
void push_back (basic_json &&val)
 add an object to an array More...
 
reference operator+= (basic_json &&val)
 add an object to an array More...
 
void push_back (const basic_json &val)
 add an object to an array More...
 
reference operator+= (const basic_json &val)
 add an object to an array More...
 
void push_back (const typename object_t::value_type &val)
 add an object to an object More...
 
reference operator+= (const typename object_t::value_type &val)
 add an object to an object More...
 
void push_back (initializer_list_t init)
 add an object to an object More...
 
reference operator+= (initializer_list_t init)
 add an object to an object More...
 
template<class... Args>
reference emplace_back (Args &&... args)
 add an object to an array More...
 
template<class... Args>
std::pair< iterator, bool > emplace (Args &&... args)
 add an object to an object if key does not exist More...
 
template<typename... Args>
iterator insert_iterator (const_iterator pos, Args &&... args)
 
iterator insert (const_iterator pos, const basic_json &val)
 inserts element More...
 
iterator insert (const_iterator pos, basic_json &&val)
 inserts element More...
 
iterator insert (const_iterator pos, size_type cnt, const basic_json &val)
 inserts elements More...
 
iterator insert (const_iterator pos, const_iterator first, const_iterator last)
 inserts elements More...
 
iterator insert (const_iterator pos, initializer_list_t ilist)
 inserts elements More...
 
void insert (const_iterator first, const_iterator last)
 inserts elements More...
 
void update (const_reference j)
 updates a JSON object from another object, overwriting existing keys More...
 
void update (const_iterator first, const_iterator last)
 updates a JSON object from another object, overwriting existing keys More...
 
void swap (reference other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value)
 exchanges the values More...
 
void swap (array_t &other)
 exchanges the values More...
 
void swap (object_t &other)
 exchanges the values More...
 
void swap (string_t &other)
 exchanges the values More...
 
void swap (binary_t &other)
 exchanges the values More...
 
void swap (typename binary_t::container_type &other)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+lexicographical comparison operators

bool operator== (const_reference lhs, const_reference rhs) noexcept
 comparison: equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator== (const_reference lhs, const ScalarType rhs) noexcept
 comparison: equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator== (const ScalarType lhs, const_reference rhs) noexcept
 comparison: equal More...
 
bool operator!= (const_reference lhs, const_reference rhs) noexcept
 comparison: not equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator!= (const_reference lhs, const ScalarType rhs) noexcept
 comparison: not equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator!= (const ScalarType lhs, const_reference rhs) noexcept
 comparison: not equal More...
 
bool operator< (const_reference lhs, const_reference rhs) noexcept
 comparison: less than More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator< (const_reference lhs, const ScalarType rhs) noexcept
 comparison: less than More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator< (const ScalarType lhs, const_reference rhs) noexcept
 comparison: less than More...
 
bool operator<= (const_reference lhs, const_reference rhs) noexcept
 comparison: less than or equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator<= (const_reference lhs, const ScalarType rhs) noexcept
 comparison: less than or equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator<= (const ScalarType lhs, const_reference rhs) noexcept
 comparison: less than or equal More...
 
bool operator> (const_reference lhs, const_reference rhs) noexcept
 comparison: greater than More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator> (const_reference lhs, const ScalarType rhs) noexcept
 comparison: greater than More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator> (const ScalarType lhs, const_reference rhs) noexcept
 comparison: greater than More...
 
bool operator>= (const_reference lhs, const_reference rhs) noexcept
 comparison: greater than or equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator>= (const_reference lhs, const ScalarType rhs) noexcept
 comparison: greater than or equal More...
 
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
bool operator>= (const ScalarType lhs, const_reference rhs) noexcept
 comparison: greater than or equal More...
 
+ + + + + + + +

+serialization

std::ostream & operator<< (std::ostream &o, const basic_json &j)
 serialize to stream More...
 
std::ostream & operator>> (const basic_json &j, std::ostream &o)
 serialize to stream More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+deserialization

std::istream & operator<< (basic_json &j, std::istream &i)
 deserialize from stream More...
 
std::istream & operator>> (std::istream &i, basic_json &j)
 deserialize from stream More...
 
template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json parse (InputType &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)
 deserialize from a compatible input More...
 
template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json parse (IteratorType first, IteratorType last, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)
 deserialize from a pair of character iterators More...
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json parse (detail::span_input_adapter &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)
 
template<typename InputType >
static bool accept (InputType &&i, const bool ignore_comments=false)
 check if the input is valid JSON More...
 
+template<typename IteratorType >
static bool accept (IteratorType first, IteratorType last, const bool ignore_comments=false)
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT bool accept (detail::span_input_adapter &&i, const bool ignore_comments=false)
 
template<typename InputType , typename SAX >
static bool sax_parse (InputType &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)
 generate SAX events More...
 
+template<class IteratorType , class SAX >
static bool sax_parse (IteratorType first, IteratorType last, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)
 
+template<typename SAX >
static bool sax_parse (detail::span_input_adapter &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+binary serialization/deserialization support

static std::vector< uint8_t > to_cbor (const basic_json &j)
 create a CBOR serialization of a given JSON value More...
 
+static void to_cbor (const basic_json &j, detail::output_adapter< uint8_t > o)
 
+static void to_cbor (const basic_json &j, detail::output_adapter< char > o)
 
static std::vector< uint8_t > to_msgpack (const basic_json &j)
 create a MessagePack serialization of a given JSON value More...
 
+static void to_msgpack (const basic_json &j, detail::output_adapter< uint8_t > o)
 
+static void to_msgpack (const basic_json &j, detail::output_adapter< char > o)
 
static std::vector< uint8_t > to_ubjson (const basic_json &j, const bool use_size=false, const bool use_type=false)
 create a UBJSON serialization of a given JSON value More...
 
+static void to_ubjson (const basic_json &j, detail::output_adapter< uint8_t > o, const bool use_size=false, const bool use_type=false)
 
+static void to_ubjson (const basic_json &j, detail::output_adapter< char > o, const bool use_size=false, const bool use_type=false)
 
static std::vector< uint8_t > to_bson (const basic_json &j)
 Serializes the given JSON object j to BSON and returns a vector containing the corresponding BSON-representation. More...
 
static void to_bson (const basic_json &j, detail::output_adapter< uint8_t > o)
 Serializes the given JSON object j to BSON and forwards the corresponding BSON-representation to the given output_adapter o. More...
 
static void to_bson (const basic_json &j, detail::output_adapter< char > o)
 Serializes the given JSON object j to BSON and forwards the corresponding BSON-representation to the given output_adapter o. More...
 
template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_cbor (InputType &&i, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)
 create a JSON value from an input in CBOR format More...
 
template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_cbor (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)
 
+template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_cbor (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_cbor (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)
 
template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_msgpack (InputType &&i, const bool strict=true, const bool allow_exceptions=true)
 create a JSON value from an input in MessagePack format More...
 
template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_msgpack (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)
 
+template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_msgpack (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true)
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_msgpack (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true)
 
template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_ubjson (InputType &&i, const bool strict=true, const bool allow_exceptions=true)
 create a JSON value from an input in UBJSON format More...
 
template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_ubjson (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)
 
+template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_ubjson (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true)
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_ubjson (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true)
 
template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_bson (InputType &&i, const bool strict=true, const bool allow_exceptions=true)
 Create a JSON value from an input in BSON format. More...
 
template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_bson (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true)
 
+template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_bson (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true)
 
+static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json from_bson (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true)
 
+ + + + + + + + + + + + + + + + + + + +

+JSON Pointer functions

reference operator[] (const json_pointer &ptr)
 access specified element via JSON Pointer More...
 
const_reference operator[] (const json_pointer &ptr) const
 access specified element via JSON Pointer More...
 
reference at (const json_pointer &ptr)
 access specified element via JSON Pointer More...
 
const_reference at (const json_pointer &ptr) const
 access specified element via JSON Pointer More...
 
basic_json flatten () const
 return flattened JSON value More...
 
basic_json unflatten () const
 unflatten a previously flattened JSON value More...
 
+ + + + + + + +

+JSON Patch functions

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json diff (const basic_json &source, const basic_json &target, const std::string &path="")
 creates a diff as a JSON patch More...
 
basic_json patch (const basic_json &json_patch) const
 applies a JSON patch More...
 
+ + + + +

+JSON Merge Patch functions

void merge_patch (const basic_json &apply_patch)
 applies a JSON Merge Patch More...
 
+

Detailed Description

+

a class to store JSON values

+
Template Parameters
+ + + + + + + + + + + +
ObjectTypetype for JSON objects (std::map by default; will be used in object_t)
ArrayTypetype for JSON arrays (std::vector by default; will be used in array_t)
StringTypetype for JSON strings and object keys (std::string by default; will be used in string_t)
BooleanTypetype for JSON booleans (bool by default; will be used in boolean_t)
NumberIntegerTypetype for JSON integer numbers (int64_t by default; will be used in number_integer_t)
NumberUnsignedTypetype for JSON unsigned integer numbers (uint64_t by default; will be used in number_unsigned_t)
NumberFloatTypetype for JSON floating-point numbers (double by default; will be used in number_float_t)
BinaryTypetype for packed binary data for compatibility with binary serialization formats (std::vector<std::uint8_t> by default; will be used in binary_t)
AllocatorTypetype of the allocator to use (std::allocator by default)
JSONSerializerthe serializer to resolve internal calls to to_json() and from_json() (adl_serializer by default)
+
+
+

@requirement The class satisfies the following concept requirements:

+
Invariant
The member variables m_value and m_type have the following relationship: +
+
See also
RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format
+
Since
version 1.0.0
+

Member Typedef Documentation

+ +

◆ exception

+ +
+
+ +

general exception of the basic_json class

+

This class is an extension of std::exception objects with a member id for exception ids. It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as "wildcard" to catch exceptions.

+

Subclasses:

    +
  • parse_error for exceptions indicating a parse error
  • +
  • invalid_iterator for exceptions indicating errors with iterators
  • +
  • type_error for exceptions indicating executing a member function with a wrong type
  • +
  • out_of_range for exceptions indicating access out of the defined range
  • +
  • other_error for exceptions indicating other library errors
  • +
+

@liveexample{The following code shows how arbitrary library exceptions can be caught.,exception}

+
Since
version 3.0.0
+ +
+
+ +

◆ parse_error

+ +
+
+ +

exception indicating a parse error

+

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.

+

Member byte holds the byte index of the last read character in the input file.

+

Exceptions have ids 1xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.parse_error.101 parse error at 2: unexpected end of input; expected string literal This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.
json.exception.parse_error.102 parse error at 14: missing or wrong low surrogate JSON uses the \uxxxx format to describe Unicode characters. Code points above above 0xFFFF are split into two \uxxxx entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point.
json.exception.parse_error.103 parse error: code points above 0x10FFFF are invalid Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.
json.exception.parse_error.104 parse error: JSON patch must be an array of objects RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.
json.exception.parse_error.105 parse error: operation must have string member 'op' An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors.
json.exception.parse_error.106 parse error: array index '01' must not begin with '0' An array index in a JSON Pointer (RFC 6901) may be 0 or any number without a leading 0.
json.exception.parse_error.107 parse error: JSON pointer must be empty or begin with '/' - was: 'foo' A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a / character.
json.exception.parse_error.108 parse error: escape character '~' must be followed with '0' or '1' In a JSON Pointer, only ~0 and ~1 are valid escape sequences.
json.exception.parse_error.109 parse error: array index 'one' is not a number A JSON Pointer array index must be a number.
json.exception.parse_error.110 parse error at 1: cannot read 2 bytes from vector When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.
json.exception.parse_error.112 parse error at 1: error reading CBOR; last byte: 0xF8 Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read.
json.exception.parse_error.113 parse error at 2: expected a CBOR string; last byte: 0x98 While parsing a map key, a value that is not a string has been read.
json.exception.parse_error.114 parse error: Unsupported BSON record type 0x0F The parsing of the corresponding BSON record type is not implemented (yet).
json.exception.parse_error.115 parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A A UBJSON high-precision number could not be parsed.
+
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
+

@liveexample{The following code shows how a parse_error exception can be caught.,parse_error}

+
See also
- exception for the base class of the library exceptions
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+ +
+
+ +

◆ invalid_iterator

+ +
+
+ +

exception indicating errors with iterators

+

This exception is thrown if iterators passed to a library function do not match the expected semantics.

+

Exceptions have ids 2xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.invalid_iterator.201 iterators are not compatible The iterators passed to constructor basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.
json.exception.invalid_iterator.202 iterator does not fit current value In an erase or insert function, the passed iterator pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion.
json.exception.invalid_iterator.203 iterators do not fit current value Either iterator passed to function erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from.
json.exception.invalid_iterator.204 iterators out of range When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (begin(), end()), because this is the only way the single stored value is expressed. All other ranges are invalid.
json.exception.invalid_iterator.205 iterator out of range When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the begin() iterator, because it is the only way to address the stored value. All other iterators are invalid.
json.exception.invalid_iterator.206 cannot construct with iterators from null The iterators passed to constructor basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range.
json.exception.invalid_iterator.207 cannot use key() for non-object iterators The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key.
json.exception.invalid_iterator.208 cannot use operator[] for object iterators The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.
json.exception.invalid_iterator.209 cannot use offsets with object iterators The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.
json.exception.invalid_iterator.210 iterators do not fit The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.
json.exception.invalid_iterator.211 passed iterators may not belong to container The iterator range passed to the insert function must not be a subrange of the container to insert to.
json.exception.invalid_iterator.212 cannot compare iterators of different containers When two iterators are compared, they must belong to the same container.
json.exception.invalid_iterator.213 cannot compare order of object iterators The order of object iterators cannot be compared, because JSON objects are unordered.
json.exception.invalid_iterator.214 cannot get value Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to begin().
+

@liveexample{The following code shows how an invalid_iterator exception can be caught.,invalid_iterator}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+ +
+
+ +

◆ type_error

+ +
+
+ +

exception indicating executing a member function with a wrong type

+

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

+

Exceptions have ids 3xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.type_error.301 cannot create object from initializer list To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead.
json.exception.type_error.302 type must be object, but is array During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types.
json.exception.type_error.303 incompatible ReferenceType for get_ref, actual type is object To retrieve a reference to a value stored in a basic_json object with get_ref, the type of the reference must match the value type. For instance, for a JSON array, the ReferenceType must be array_t &.
json.exception.type_error.304 cannot use at() with string The at() member functions can only be executed for certain JSON types.
json.exception.type_error.305 cannot use operator[] with string The operator[] member functions can only be executed for certain JSON types.
json.exception.type_error.306 cannot use value() with string The value() member functions can only be executed for certain JSON types.
json.exception.type_error.307 cannot use erase() with string The erase() member functions can only be executed for certain JSON types.
json.exception.type_error.308 cannot use push_back() with string The push_back() and operator+= member functions can only be executed for certain JSON types.
json.exception.type_error.309 cannot use insert() with The insert() member functions can only be executed for certain JSON types.
json.exception.type_error.310 cannot use swap() with number The swap() member functions can only be executed for certain JSON types.
json.exception.type_error.311 cannot use emplace_back() with string The emplace_back() member function can only be executed for certain JSON types.
json.exception.type_error.312 cannot use update() with string The update() member functions can only be executed for certain JSON types.
json.exception.type_error.313 invalid value to unflatten The unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined.
json.exception.type_error.314 only objects can be unflattened The unflatten function only works for an object whose keys are JSON Pointers.
json.exception.type_error.315 values in object must be primitive The unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive.
json.exception.type_error.316 invalid UTF-8 byte at index 10: 0x7E The dump function only works with UTF-8 encoded strings; that is, if you assign a std::string to a JSON value, make sure it is UTF-8 encoded.
json.exception.type_error.317 JSON value cannot be serialized to requested format The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw true or null JSON object cannot be serialized to BSON)
+

@liveexample{The following code shows how a type_error exception can be caught.,type_error}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+ +
+
+ +

◆ out_of_range

+ +
+
+ +

exception indicating access out of the defined range

+

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

+

Exceptions have ids 4xx.

+ + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.out_of_range.401 array index 3 is out of range The provided array index i is larger than size-1.
json.exception.out_of_range.402 array index '-' (3) is out of range The special array index - in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it.
json.exception.out_of_range.403 key 'foo' not found The provided key was not found in the JSON object.
json.exception.out_of_range.404 unresolved reference token 'foo' A reference token in a JSON Pointer could not be resolved.
json.exception.out_of_range.405 JSON pointer has no parent The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
json.exception.out_of_range.406 number overflow parsing '10E1000' A parsed number could not be stored as without changing it to NaN or INF.
json.exception.out_of_range.407 number overflow serializing '9223372036854775808' UBJSON and BSON only support integer numbers up to 9223372036854775807. (until version 3.8.0)
json.exception.out_of_range.408 excessive array size: 8658170730974374167 The size (following #) of an UBJSON array or object exceeds the maximal capacity.
json.exception.out_of_range.409 BSON key cannot contain code point U+0000 (at byte 2) Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string
+

@liveexample{The following code shows how an out_of_range exception can be caught.,out_of_range}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+ +
+
+ +

◆ other_error

+ +
+
+ +

exception indicating other library errors

+

This exception is thrown in case of errors that cannot be classified with the other exception types.

+

Exceptions have ids 5xx.

+ + + + + +
name / id example message description
json.exception.other_error.501 unsuccessful: {"op":"test","path":"/baz", "value":"bar"} A JSON Patch operation 'test' failed. The unsuccessful operation is also printed.
+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+

@liveexample{The following code shows how an other_error exception can be caught.,other_error}

+
Since
version 3.0.0
+ +
+
+ +

◆ object_t

+ +
+
+ + + + +
using nlohmann::basic_json::object_t = ObjectType<StringType, basic_json, object_comparator_t, AllocatorType<std::pair<const StringType, basic_json> >>
+
+ +

a type for an object

+

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 described below.

+
Template Parameters
+ + + + +
ObjectTypethe container to store objects (e.g., std::map or std::unordered_map)
StringTypethe type of the keys or names (e.g., std::string). The comparison function std::less<StringType> is used to order elements inside the container.
AllocatorTypethe 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<
+
std::string, // key_type
+
basic_json, // value_type
+
std::less<std::string>, // key_compare
+
std::allocator<std::pair<const std::string, basic_json>> // allocator_type
+
>
+

+Behavior

+

The choice of object_t influences the behavior of the JSON class. With the default type, objects have the following behavior:

+
    +
  • When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.
  • +
  • When the names within an object are not unique, it is unspecified which one of the values for a given key will be chosen. For instance, {"key": 2, "key": 1} could be equal to either {"key": 1} or {"key": 2}.
  • +
  • Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see dump) in this order. For instance, {"b": 1, "a": 2} and {"a": 2, "b": 1} will be stored and serialized as {"a": 2, "b": 1}.
  • +
  • When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, {"b": 1, "a": 2} and {"a": 2, "b": 1} will be treated as equal.
  • +
+

+Limits

+

RFC 7159 specifies:

+

An implementation may set limits on the maximum depth of nesting.

+
+

In this class, the object's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON object.

+

+Storage

+

Objects are stored as pointers in a basic_json type. That is, for any access to object values, a pointer of type object_t* must be dereferenced.

+
See also
array_ttype for an array value
+
Since
version 1.0.0
+
Note
The order name/value pairs are added to the object is not preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as std::map with std::less is used by default. Please note this behavior conforms to RFC 7159, because any order implements the specified "unordered" nature of JSON objects.
+ +
+
+ +

◆ array_t

+ +
+
+ + + + +
using nlohmann::basic_json::array_t = ArrayType<basic_json, AllocatorType<basic_json> >
+
+ +

a type for an array

+

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 explained below.

+
Template Parameters
+ + + +
ArrayTypecontainer type to store arrays (e.g., std::vector or std::list)
AllocatorTypeallocator 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<
+
basic_json, // value_type
+
std::allocator<basic_json> // allocator_type
+
>
+

+Limits

+

RFC 7159 specifies:

+

An implementation may set limits on the maximum depth of nesting.

+
+

In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON array.

+

+Storage

+

Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of type array_t* must be dereferenced.

+
See also
object_ttype for an object value
+
Since
version 1.0.0
+ +
+
+ +

◆ string_t

+ +
+
+ + + + +
using nlohmann::basic_json::string_t = StringType
+
+ +

a type for a string

+

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 parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization.

+
Template Parameters
+ + +
StringTypethe 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
+

+Encoding

+

Strings are stored in UTF-8 encoding. Therefore, functions like std::string::size() or std::string::length() return the number of bytes in the string rather than the number of characters or glyphs.

+

+String comparison

+

RFC 7159 states:

+

Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that "a\\b" and "a\u005Cb" are not equal.

+
+

This implementation is interoperable as it does compare strings code unit by code unit.

+

+Storage

+

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.0
+ +
+
+ +

◆ boolean_t

+ +
+
+ + + + +
using nlohmann::basic_json::boolean_t = BooleanType
+
+ +

a type for a boolean

+

RFC 7159 implicitly describes a boolean as a type which differentiates the two literals true and false.

+

To store objects in C++, a type is defined by the template parameter BooleanType which chooses the type to use.

+

+Default type

+

With the default values for BooleanType (bool), the default value for boolean_t is:

+
bool
+

+Storage

+

Boolean values are stored directly inside a basic_json type.

+
Since
version 1.0.0
+ +
+
+ +

◆ number_integer_t

+ +
+
+ + + + +
using nlohmann::basic_json::number_integer_t = NumberIntegerType
+
+ +

a type for a number (integer)

+

RFC 7159 describes numbers as follows:

+

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

+
+

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

+

To store integer numbers in C++, a type is defined by the template parameter NumberIntegerType which chooses the type to use.

+

+Default type

+

With the default values for NumberIntegerType (int64_t), the default value for number_integer_t is:

+
int64_t
+

+Default behavior

+
    +
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • +
  • Not-a-number (NaN) values will be serialized to null.
  • +
+

+Limits

+

RFC 7159 specifies:

+

An implementation may set limits on the range and precision of numbers.

+
+

When the default type is used, the maximal integer number that can be stored is 9223372036854775807 (INT64_MAX) and the minimal integer number that can be stored is -9223372036854775808 (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_unsigned_t or number_float_t.

+

RFC 7159 further states:

+

Note that when such software is used, numbers that are integers and are in the range $[-2^{53}+1, 2^{53}-1]$ are interoperable in the sense that implementations will agree exactly on their numeric values.

+
+

As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.

+

+Storage

+

Integer number values are stored directly inside a basic_json type.

+
See also
number_float_ttype for number values (floating-point)
+
+number_unsigned_ttype for number values (unsigned integer)
+
Since
version 1.0.0
+ +
+
+ +

◆ number_unsigned_t

+ +
+
+ + + + +
using nlohmann::basic_json::number_unsigned_t = NumberUnsignedType
+
+ +

a type for a number (unsigned)

+

RFC 7159 describes numbers as follows:

+

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

+
+

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

+

To store unsigned integer numbers in C++, a type is defined by the template parameter NumberUnsignedType which chooses the type to use.

+

+Default type

+

With the default values for NumberUnsignedType (uint64_t), the default value for number_unsigned_t is:

+
uint64_t
+

+Default behavior

+
    +
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • +
  • Not-a-number (NaN) values will be serialized to null.
  • +
+

+Limits

+

RFC 7159 specifies:

+

An implementation may set limits on the range and precision of numbers.

+
+

When the default type is used, the maximal integer number that can be stored is 18446744073709551615 (UINT64_MAX) and the minimal integer number that can be stored is 0. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_integer_t or number_float_t.

+

RFC 7159 further states:

+

Note that when such software is used, numbers that are integers and are in the range $[-2^{53}+1, 2^{53}-1]$ are interoperable in the sense that implementations will agree exactly on their numeric values.

+
+

As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable.

+

+Storage

+

Integer number values are stored directly inside a basic_json type.

+
See also
number_float_ttype for number values (floating-point)
+
+number_integer_ttype for number values (integer)
+
Since
version 2.0.0
+ +
+
+ +

◆ number_float_t

+ +
+
+ + + + +
using nlohmann::basic_json::number_float_t = NumberFloatType
+
+ +

a type for a number (floating-point)

+

RFC 7159 describes numbers as follows:

+

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

+
+

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

+

To store floating-point numbers in C++, a type is defined by the template parameter NumberFloatType which chooses the type to use.

+

+Default type

+

With the default values for NumberFloatType (double), the default value for number_float_t is:

+
double
+

+Default behavior

+
    +
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in floating-point literals will be ignored. Internally, the value will be stored as decimal number. For instance, the C++ floating-point literal 01.2 will be serialized to 1.2. During deserialization, leading zeros yield an error.
  • +
  • Not-a-number (NaN) values will be serialized to null.
  • +
+

+Limits

+

RFC 7159 states:

+

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision.

+
+

This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than -1.79769313486232e+308 and values greater than 1.79769313486232e+308 will be stored as NaN internally and be serialized to null.

+

+Storage

+

Floating-point number values are stored directly inside a basic_json type.

+
See also
number_integer_ttype for number values (integer)
+
+number_unsigned_ttype for number values (unsigned integer)
+
Since
version 1.0.0
+ +
+
+ +

◆ binary_t

+ +
+
+ +

a type for a packed binary type

+

This type is a type designed to carry binary data that appears in various serialized formats, such as CBOR's Major Type 2, MessagePack's bin, and BSON's generic binary subtype. This type is NOT a part of standard JSON and exists solely for compatibility with these binary types. As such, it is simply defined as an ordered sequence of zero or more byte values.

+

Additionally, as an implementation detail, the subtype of the binary data is carried around as a std::uint8_t, which is compatible with both of the binary data formats that use binary subtyping, (though the specific numbering is incompatible with each other, and it is up to the user to translate between them).

+

CBOR's RFC 7049 describes this type as:

+

Major type 2: a byte string. The string's length in bytes is represented following the rules for positive integers (major type 0).

+
+

MessagePack's documentation on the bin type family describes this type as:

+

Bin format family stores an byte array in 2, 3, or 5 bytes of extra bytes in addition to the size of the byte array.

+
+

BSON's specifications describe several binary types; however, this type is intended to represent the generic binary type which has the description:

+

Generic binary subtype - This is the most commonly used binary subtype and should be the 'default' for drivers and tools.

+
+

None of these impose any limitations on the internal representation other than the basic unit of storage be some type of array whose parts are decomposable into bytes.

+

The default representation of this binary format is a std::vector<std::uint8_t>, which is a very common way to represent a byte array in modern C++.

+

+Default type

+

The default values for BinaryType is std::vector<std::uint8_t>

+

+Storage

+

Binary Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of the type binary_t* must be dereferenced.

+

+Notes on subtypes

+
    +
  • CBOR
      +
    • Binary values are represented as byte strings. No subtypes are supported and will be ignored when CBOR is written.
    • +
    +
  • +
  • MessagePack
      +
    • If a subtype is given and the binary array contains exactly 1, 2, 4, 8, or 16 elements, the fixext family (fixext1, fixext2, fixext4, fixext8) is used. For other sizes, the ext family (ext8, ext16, ext32) is used. The subtype is then added as singed 8-bit integer.
    • +
    • If no subtype is given, the bin family (bin8, bin16, bin32) is used.
    • +
    +
  • +
  • BSON
      +
    • If a subtype is given, it is used and added as unsigned 8-bit integer.
    • +
    • If no subtype is given, the generic binary subtype 0x00 is used.
    • +
    +
  • +
+
See also
binarycreate a binary array
+
Since
version 3.8.0
+ +
+
+ +

◆ parse_event_t

+ +
+
+ +

parser event types

+

The parser callback distinguishes the following events:

    +
  • object_start: the parser read { and started to process a JSON object
  • +
  • key: the parser read a key of a value in an object
  • +
  • object_end: the parser read } and finished processing a JSON object
  • +
  • array_start: the parser read [ and started to process a JSON array
  • +
  • array_end: the parser read ] and finished processing a JSON array
  • +
  • value: the parser finished reading a JSON value
  • +
+
+ +
+Example when certain parse events are triggered
+
See also
parser_callback_t for more information and examples
+ +
+
+ +

◆ parser_callback_t

+ +
+
+ + + + +
using nlohmann::basic_json::parser_callback_t = detail::parser_callback_t<basic_json>
+
+ +

per-element parser callback type

+

With a parser callback function, the result of parsing a JSON text can be influenced. When passed to parse, it is called on certain events (passed as parse_event_t via parameter event) with a set recursion depth depth and context JSON value parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.

+

We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters depth, event, and parsed.

+ + + + + + + + + + + + + + + +
parameter event description parameter depth parameter parsed
parse_event_t::object_start the parser read { and started to process a JSON object depth of the parent of the JSON object a JSON value with type discarded
parse_event_t::key the parser read a key of a value in an object depth of the currently parsed JSON object a JSON string containing the key
parse_event_t::object_end the parser read } and finished processing a JSON object depth of the parent of the JSON object the parsed JSON object
parse_event_t::array_start the parser read [ and started to process a JSON array depth of the parent of the JSON array a JSON value with type discarded
parse_event_t::array_end the parser read ] and finished processing a JSON array depth of the parent of the JSON array the parsed JSON array
parse_event_t::value the parser finished reading a JSON value depth of the value the parsed JSON value
+
+ +
+Example when certain parse events are triggered
+

Discarding a value (i.e., returning false) has different effects depending on the context in which function was called:

+
    +
  • Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.
  • +
  • In case a value outside a structured type is skipped, it is replaced with null. This case happens if the top-level element is skipped.
  • +
+
Parameters
+ + + + +
[in]depththe depth of the recursion during parsing
[in]eventan event of type parse_event_t indicating the context in the callback function has been called
[in,out]parsedthe current intermediate parse result; note that writing to this value has no effect for parse_event_t::key events
+
+
+
Returns
Whether the JSON value which called the function during parsing should be kept (true) or not (false). In the latter case, it is either skipped completely or replaced by an empty discarded object.
+
See also
parse for examples
+
Since
version 1.0.0
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ basic_json() [1/9]

+ +
+
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (const value_t v)
+
+inline
+
+ +

create an empty value with a given type

+

Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type:

+ + + + + + + + + + + + + + + + + +
Value type initial value
null null
boolean false
string ""
number 0
object {}
array []
binary empty array
+
Parameters
+ + +
[in]vthe type of the value to create
+
+
+

@complexity Constant.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The following code shows the constructor for different value_t values,basic_json__value_t}

+
See also
clear() – restores the postcondition of this constructor
+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [2/9]

+ +
+
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (std::nullptr_t  = nullptr)
+
+inlinenoexcept
+
+ +

create a null object

+

Create a null JSON value. It either takes a null pointer as parameter (explicitly creating null) or no parameter (implicitly creating null). The passed null pointer itself is not read – it is only used to choose the right constructor.

+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this constructor never throws exceptions.

+

@liveexample{The following code shows the constructor with and without a null pointer parameter.,basic_json__nullptr_t}

+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [3/9]

+ +
+
+
+template<typename CompatibleType , typename U = detail::uncvref_t<CompatibleType>, detail::enable_if_t< !detail::is_basic_json< U >::value &&detail::is_compatible_type< basic_json_t, U >::value, int > = 0>
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (CompatibleType && val)
+
+inlinenoexcept
+
+ +

create a JSON value

+

This is a "catch all" constructor for all compatible JSON types; that is, types for which a to_json() method exists. The constructor forwards the parameter val to that method (to json_serializer<U>::to_json method with U = uncvref_t<CompatibleType>, to be exact).

+

Template type CompatibleType includes, but is not limited to, the following types:

    +
  • arrays: array_t and all kinds of compatible containers such as std::vector, std::deque, std::list, std::forward_list, std::array, std::valarray, std::set, std::unordered_set, std::multiset, and std::unordered_multiset with a value_type from which a basic_json value can be constructed.
  • +
  • objects: object_t and all kinds of compatible associative containers such as std::map, std::unordered_map, std::multimap, and std::unordered_multimap with a key_type compatible to string_t and a value_type from which a basic_json value can be constructed.
  • +
  • strings: string_t, string literals, and all compatible string containers can be used.
  • +
  • numbers: number_integer_t, number_unsigned_t, number_float_t, and all convertible number types such as int, size_t, int64_t, float or double can be used.
  • +
  • boolean: boolean_t / bool can be used.
  • +
  • binary: binary_t / std::vector<uint8_t> may be used, unfortunately because string literals cannot be distinguished from binary character arrays by the C++ type system, all types compatible with const char* will be directed to the string constructor instead. This is both for backwards compatibility, and due to the fact that a binary type is not a standard JSON type.
  • +
+

See the examples below.

+
Template Parameters
+ + + +
CompatibleTypea type such that:
    +
  • CompatibleType is not derived from std::istream,
  • +
  • CompatibleType is not basic_json (to avoid hijacking copy/move constructors),
  • +
  • CompatibleType is not a different basic_json type (i.e. with different template arguments)
  • +
  • CompatibleType is not a basic_json nested type (e.g., json_pointer, iterator, etc ...)
  • +
  • json_serializer has a to_json(basic_json_t&, CompatibleType&&) method
  • +
+
U= uncvref_t<CompatibleType>
+
+
+
Parameters
+ + +
[in]valthe value to be forwarded to the respective constructor
+
+
+

@complexity Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.

+

@exceptionsafety Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The following code shows the constructor with several compatible types.,basic_json__CompatibleType}

+
Since
version 2.1.0
+ +
+
+ +

◆ basic_json() [4/9]

+ +
+
+
+template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value &&!std::is_same< basic_json, BasicJsonType >::value, int > = 0>
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (const BasicJsonType & val)
+
+inline
+
+ +

create a JSON value from an existing one

+

This is a constructor for existing basic_json types. It does not hijack copy/move constructors, since the parameter has different template arguments than the current ones.

+

The constructor tries to convert the internal m_value of the parameter.

+
Template Parameters
+ + +
BasicJsonTypea type such that: +
+
+
+
Parameters
+ + +
[in]valthe basic_json value to be converted.
+
+
+

@complexity Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.

+

@exceptionsafety Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.

+
Since
version 3.2.0
+ +
+
+ +

◆ basic_json() [5/9]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
nlohmann::basic_json::basic_json (initializer_list_t init,
bool type_deduction = true,
value_t manual_type = value_t::array 
)
+
+inline
+
+ +

create a container (array or object) from an initializer list

+

Creates a JSON value of type array or object from the passed initializer list init. In case type_deduction is true (default), the type of the JSON value to be created is deducted from the initializer list init according to the following rules:

+
    +
  1. If the list is empty, an empty JSON object value {} is created.
  2. +
  3. If the list consists of pairs whose first element is a string, a JSON object value is created where the first elements of the pairs are treated as keys and the second elements are as values.
  4. +
  5. In all other cases, an array is created.
  6. +
+

The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows:

+
    +
  1. The empty initializer list is written as {} which is exactly an empty JSON object.
  2. +
  3. C++ has no way of describing mapped types other than to list a list of pairs. As JSON requires that keys must be of type string, rule 2 is the weakest constraint one can pose on initializer lists to interpret them as an object.
  4. +
  5. In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe.
  6. +
+

With the rules described above, the following JSON values cannot be expressed by an initializer list:

+ +
Note
When used without parentheses around an empty initializer list, basic_json() is called instead of this function, yielding the JSON null value.
+
Parameters
+ + + + +
[in]initinitializer list with JSON values
[in]type_deductioninternal parameter; when set to true, the type of the JSON value is deducted from the initializer list init; when set to false, the type provided via manual_type is forced. This mode is used by the functions array(initializer_list_t) and object(initializer_list_t).
[in]manual_typeinternal parameter; when type_deduction is set to false, the created JSON value will use the provided type (only value_t::array and value_t::object are valid); when type_deduction is set to true, this parameter has no effect
+
+
+
Exceptions
+ + +
type_error.301if type_deduction is false, manual_type is value_t::object, but init contains an element which is not a pair whose first element is a string. In this case, the constructor could not create an object. If type_deduction would have be true, an array would have been created. See object(initializer_list_t) for an example.
+
+
+

@complexity Linear in the size of the initializer list init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The example below shows how JSON values are created from initializer lists.,basic_json__list_init_t}

+
See also
array(initializer_list_t)create a JSON array value from an initializer list
+
+object(initializer_list_t)create a JSON object value from an initializer list
+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [6/9]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nlohmann::basic_json::basic_json (size_type cnt,
const basic_jsonval 
)
+
+inline
+
+ +

construct an array with count copies of given value

+

Constructs a JSON array value by creating cnt copies of a passed value. In case cnt is 0, an empty array is created.

+
Parameters
+ + + +
[in]cntthe number of JSON copies of val to create
[in]valthe JSON value to copy
+
+
+
Postcondition
std::distance(begin(),end()) == cnt holds.
+

@complexity Linear in cnt.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The following code shows examples for the basic_json(size_type\, const basic_json&) constructor.,basic_json__size_type_basic_json}

+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [7/9]

+ +
+
+
+template<class InputIT , typename std::enable_if< std::is_same< InputIT, typename basic_json_t::iterator >::value||std::is_same< InputIT, typename basic_json_t::const_iterator >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nlohmann::basic_json::basic_json (InputIT first,
InputIT last 
)
+
+inline
+
+ +

construct a JSON container given an iterator range

+

Constructs the JSON value with the contents of the range [first, last). The semantics depends on the different types a JSON value can have:

    +
  • In case of a null type, invalid_iterator.206 is thrown.
  • +
  • In case of other primitive types (number, boolean, or string), first must be begin() and last must be end(). In this case, the value is copied. Otherwise, invalid_iterator.204 is thrown.
  • +
  • In case of structured types (array, object), the constructor behaves as similar versions for std::vector or std::map; that is, a JSON array or object is constructed from the values in the range.
  • +
+
Template Parameters
+ + +
InputITan input iterator type (iterator or const_iterator)
+
+
+
Parameters
+ + + +
[in]firstbegin of the range to copy from (included)
[in]lastend of the range to copy from (excluded)
+
+
+
Precondition
Iterators first and last must be initialized. This precondition is enforced with an assertion (see warning). If assertions are switched off, a violation of this precondition yields undefined behavior.
+
+Range [first, last) is valid. Usually, this precondition cannot be checked efficiently. Only certain edge cases are detected; see the description of the exceptions below. A violation of this precondition yields undefined behavior.
+
Warning
A precondition is enforced with a runtime assertion that will result in calling std::abort if this precondition is not met. Assertions can be disabled by defining NDEBUG at compile time. See https://en.cppreference.com/w/cpp/error/assert for more information.
+
Exceptions
+ + + + +
invalid_iterator.201if iterators first and last are not compatible (i.e., do not belong to the same JSON value). In this case, the range [first, last) is undefined.
invalid_iterator.204if iterators first and last belong to a primitive type (number, boolean, or string), but first does not point to the first element any more. In this case, the range [first, last) is undefined. See example code below.
invalid_iterator.206if iterators first and last belong to a null value. In this case, the range [first, last) is undefined.
+
+
+

@complexity Linear in distance between first and last.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The example below shows several ways to create JSON values by specifying a subrange with iterators.,basic_json__InputIt_InputIt}

+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [8/9]

+ +
+
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (const basic_jsonother)
+
+inline
+
+ +

copy constructor

+

Creates a copy of a given JSON value.

+
Parameters
+ + +
[in]otherthe JSON value to copy
+
+
+
Postcondition
*this == other
+

@complexity Linear in the size of other.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is linear.
  • +
  • As postcondition, it holds: other == basic_json(other).
  • +
+

@liveexample{The following code shows an example for the copy constructor.,basic_json__basic_json}

+
Since
version 1.0.0
+ +
+
+ +

◆ basic_json() [9/9]

+ +
+
+ + + + + +
+ + + + + + + + +
nlohmann::basic_json::basic_json (basic_json && other)
+
+inlinenoexcept
+
+ +

move constructor

+

Move constructor. Constructs a JSON value with the contents of the given value other using move semantics. It "steals" the resources from other and leaves it as JSON null value.

+
Parameters
+ + +
[in,out]othervalue to move to this object
+
+
+
Postcondition
*this has the same value as other before the call.
+
+other is a JSON null value.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this constructor never throws exceptions.

+

@requirement This function helps basic_json satisfying the MoveConstructible requirements.

+

@liveexample{The code below shows the move constructor explicitly called via std::move.,basic_json__moveconstructor}

+
Since
version 1.0.0
+ +
+
+ +

◆ ~basic_json()

+ +
+
+ + + + + +
+ + + + + + + +
nlohmann::basic_json::~basic_json ()
+
+inlinenoexcept
+
+ +

destructor

+

Destroys the JSON value and frees all allocated memory.

+

@complexity Linear.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is linear.
  • +
  • All stored elements are destroyed and all memory is freed.
  • +
+
Since
version 1.0.0
+ +
+
+

Member Function Documentation

+ +

◆ meta()

+ +
+
+ + + + + +
+ + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::meta ()
+
+inlinestatic
+
+ +

returns version information on the library

+

This function returns a JSON object with information about the library, including the version number and information on the platform and compiler.

+
Returns
JSON object holding version information + + + + + + + + + + + + + + +
key description
compiler Information on the used compiler. It is an object with the following keys: c++ (the used C++ standard), family (the compiler family; possible values are clang, icc, gcc, ilecpp, msvc, pgcpp, sunpro, and unknown), and version (the compiler version).
copyright The copyright line for the library as string.
name The name of the library as string.
platform The used platform as string. Possible values are win32, linux, apple, unix, and unknown.
url The URL of the project as string.
version The version of the library. It is an object with the following keys: major, minor, and patch as defined by Semantic Versioning, and string (the version string).
+
+

@liveexample{The following code shows an example output of the meta() function.,meta}

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@complexity Constant.

+
Since
2.1.0
+ +
+
+ +

◆ assert_invariant()

+ +
+
+ + + + + +
+ + + + + + + +
void nlohmann::basic_json::assert_invariant () const
+
+inlineprivatenoexcept
+
+ +

checks the class invariants

+

This function asserts the class invariants. It needs to be called at the end of every constructor to make sure that created objects respect the invariant. Furthermore, it has to be called each time the type of a JSON value is changed, because the invariant expresses a relationship between m_type and m_value.

+ +
+
+ +

◆ binary() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::binary (const typename binary_t::container_typeinit)
+
+inlinestatic
+
+ +

explicitly create a binary array (without subtype)

+

Creates a JSON binary array value from a given binary container. Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

+
Note
Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.
+
Parameters
+ + +
[in]initcontainer containing bytes to use as binary type
+
+
+
Returns
JSON binary array value
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+
Since
version 3.8.0
+ +
+
+ +

◆ binary() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::binary (const typename binary_t::container_typeinit,
std::uint8_t subtype 
)
+
+inlinestatic
+
+ +

explicitly create a binary array (with subtype)

+

Creates a JSON binary array value from a given binary container. Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

+
Note
Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.
+
Parameters
+ + + +
[in]initcontainer containing bytes to use as binary type
[in]subtypesubtype to use in MessagePack and BSON
+
+
+
Returns
JSON binary array value
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+
Since
version 3.8.0
+ +
+
+ +

◆ binary() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::binary (typename binary_t::container_type && init)
+
+inlinestatic
+
+ +

explicitly create a binary array (without subtype)

+

Creates a JSON binary array value from a given binary container. Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

+
Note
Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.
+
Parameters
+ + +
[in]initcontainer containing bytes to use as binary type
+
+
+
Returns
JSON binary array value
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+
Since
version 3.8.0
+ +
+
+ +

◆ binary() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::binary (typename binary_t::container_type && init,
std::uint8_t subtype 
)
+
+inlinestatic
+
+ +

explicitly create a binary array (with subtype)

+

Creates a JSON binary array value from a given binary container. Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

+
Note
Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.
+
Parameters
+ + + +
[in]initcontainer containing bytes to use as binary type
[in]subtypesubtype to use in MessagePack and BSON
+
+
+
Returns
JSON binary array value
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+
Since
version 3.8.0
+ +
+
+ +

◆ array()

+ +
+
+ + + + + +
+ + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::array (initializer_list_t init = {})
+
+inlinestatic
+
+ +

explicitly create an array from an initializer list

+

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(initializer_list_t, bool, value_t)). These cases are:
    +
  1. 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
  2. +
  3. creating an empty array – passing the empty initializer list to the initializer list constructor yields an empty object
  4. +
+
+
Parameters
+ + +
[in]initinitializer list with JSON values to create an array from (optional)
+
+
+
Returns
JSON array value
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The following code shows an example for the array function.,array}

+
See also
basic_json(initializer_list_t, bool, value_t)create a JSON value from an initializer list
+
+object(initializer_list_t)create a JSON object value from an initializer list
+
Since
version 1.0.0
+ +
+
+ +

◆ object()

+ +
+
+ + + + + +
+ + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::object (initializer_list_t init = {})
+
+inlinestatic
+
+ +

explicitly create an object from an initializer list

+

Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object {} is created.

+
Note
This function is only added for symmetry reasons. In contrast to the related function array(initializer_list_t), there are no cases which can only be expressed by this function. That is, any initializer list init can also be passed to the initializer list constructor basic_json(initializer_list_t, bool, value_t).
+
Parameters
+ + +
[in]initinitializer list to create an object from (optional)
+
+
+
Returns
JSON object value
+
Exceptions
+ + +
type_error.301if init is not a list of pairs whose first elements are strings. In this case, no object can be created. When such a value is passed to basic_json(initializer_list_t, bool, value_t), an array would have been created from the passed initializer list init. See example below.
+
+
+

@complexity Linear in the size of init.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

+

@liveexample{The following code shows an example for the object function.,object}

+
See also
basic_json(initializer_list_t, bool, value_t)create a JSON value from an initializer list
+
+array(initializer_list_t)create a JSON array value from an initializer list
+
Since
version 1.0.0
+ +
+
+ +

◆ operator=()

+ +
+
+ + + + + +
+ + + + + + + + +
basic_json& nlohmann::basic_json::operator= (basic_json other)
+
+inlinenoexcept
+
+ +

copy assignment

+

Copy assignment operator. Copies a JSON value via the "copy and swap" strategy: It is expressed in terms of the copy constructor, destructor, and the swap() member function.

+
Parameters
+ + +
[in]othervalue to copy from
+
+
+

@complexity Linear.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is linear.
  • +
+

@liveexample{The code below shows and example for the copy assignment. It creates a copy of value a which is then swapped with b. Finally\, the copy of a (which is the null value after the swap) is destroyed.,basic_json__copyassignment}

+
Since
version 1.0.0
+ +
+
+ +

◆ dump()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
string_t nlohmann::basic_json::dump (const int indent = -1,
const char indent_char = ' ',
const bool ensure_ascii = false,
const error_handler_t error_handler = error_handler_t::strict 
) const
+
+inline
+
+ +

serialization

+

Serialization function for JSON values. The function tries to mimic Python's json.dumps() function, and currently supports its indent and ensure_ascii parameters.

+
Parameters
+ + + + + +
[in]indentIf indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. -1 (the default) selects the most compact representation.
[in]indent_charThe character to use for indentation if indent is greater than 0. The default is (space).
[in]ensure_asciiIf ensure_ascii is true, all non-ASCII characters in the output are escaped with \uXXXX sequences, and the result consists of ASCII characters only.
[in]error_handlerhow to react on decoding errors; there are three possible values: strict (throws and exception in case a decoding error occurs; default), replace (replace invalid UTF-8 sequences with U+FFFD), and ignore (ignore invalid UTF-8 sequences during serialization; all bytes are copied to the output unchanged).
+
+
+
Returns
string containing the serialization of the JSON value
+
Exceptions
+ + +
type_error.316if a string stored inside the JSON value is not UTF-8 encoded and error_handler is set to strict
+
+
+
Note
Binary values are serialized as object containing two keys:
    +
  • "bytes": an array of bytes as integers
  • +
  • "subtype": the subtype as integer or "null" if the binary has no subtype
  • +
+
+

@complexity Linear.

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@liveexample{The following example shows the effect of different indent\, indent_char\, and ensure_ascii parameters to the result of the serialization.,dump}

+
See also
https://docs.python.org/2/library/json.html#json.dump
+
Since
version 1.0.0; indentation character indent_char, option ensure_ascii and exceptions added in version 3.0.0; error handlers added in version 3.4.0; serialization of binary values added in version 3.8.0.
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr value_t nlohmann::basic_json::type () const
+
+inlineconstexprnoexcept
+
+ +

return the type of the JSON value (explicit)

+

Return the type of the JSON value as a value from the value_t enumeration.

+
Returns
the type of the JSON value + + + + + + + + + + + + + + + + + + + + + + +
Value type return value
null value_t::null
boolean value_t::boolean
string value_t::string
number (integer) value_t::number_integer
number (unsigned integer) value_t::number_unsigned
number (floating-point) value_t::number_float
object value_t::object
array value_t::array
binary value_t::binary
discarded value_t::discarded
+
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies type() for all JSON types.,type}

+
See also
operator value_t() – return the type of the JSON value (implicit)
+
+type_name() – return the type as string
+
Since
version 1.0.0
+ +
+
+ +

◆ is_primitive()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_primitive () const
+
+inlineconstexprnoexcept
+
+ +

return whether type is primitive

+

This function returns true if and only if the JSON type is primitive (string, number, boolean, or null).

+
Returns
true if type is primitive (string, number, boolean, or null), false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_primitive() for all JSON types.,is_primitive}

+
See also
is_structured() – returns whether JSON value is structured
+
+is_null() – returns whether JSON value is null
+
+is_string() – returns whether JSON value is a string
+
+is_boolean() – returns whether JSON value is a boolean
+
+is_number() – returns whether JSON value is a number
+
+is_binary() – returns whether JSON value is a binary array
+
Since
version 1.0.0
+ +
+
+ +

◆ is_structured()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_structured () const
+
+inlineconstexprnoexcept
+
+ +

return whether type is structured

+

This function returns true if and only if the JSON type is structured (array or object).

+
Returns
true if type is structured (array or object), false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_structured() for all JSON types.,is_structured}

+
See also
is_primitive() – returns whether value is primitive
+
+is_array() – returns whether value is an array
+
+is_object() – returns whether value is an object
+
Since
version 1.0.0
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_null () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is null

+

This function returns true if and only if the JSON value is null.

+
Returns
true if type is null, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_null() for all JSON types.,is_null}

+
Since
version 1.0.0
+ +
+
+ +

◆ is_boolean()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_boolean () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is a boolean

+

This function returns true if and only if the JSON value is a boolean.

+
Returns
true if type is boolean, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_boolean() for all JSON types.,is_boolean}

+
Since
version 1.0.0
+ +
+
+ +

◆ is_number()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_number () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is a number

+

This function returns true if and only if the JSON value is a number. This includes both integer (signed and unsigned) and floating-point values.

+
Returns
true if type is number (regardless whether integer, unsigned integer or floating-type), false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_number() for all JSON types.,is_number}

+
See also
is_number_integer() – check if value is an integer or unsigned integer number
+
+is_number_unsigned() – check if value is an unsigned integer number
+
+is_number_float() – check if value is a floating-point number
+
Since
version 1.0.0
+ +
+
+ +

◆ is_number_integer()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_number_integer () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is an integer number

+

This function returns true if and only if the JSON value is a signed or unsigned integer number. This excludes floating-point values.

+
Returns
true if type is an integer or unsigned integer number, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_number_integer() for all JSON types.,is_number_integer}

+
See also
is_number() – check if value is a number
+
+is_number_unsigned() – check if value is an unsigned integer number
+
+is_number_float() – check if value is a floating-point number
+
Since
version 1.0.0
+ +
+
+ +

◆ is_number_unsigned()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_number_unsigned () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is an unsigned integer number

+

This function returns true if and only if the JSON value is an unsigned integer number. This excludes floating-point and signed integer values.

+
Returns
true if type is an unsigned integer number, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_number_unsigned() for all JSON types.,is_number_unsigned}

+
See also
is_number() – check if value is a number
+
+is_number_integer() – check if value is an integer or unsigned integer number
+
+is_number_float() – check if value is a floating-point number
+
Since
version 2.0.0
+ +
+
+ +

◆ is_number_float()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_number_float () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is a floating-point number

+

This function returns true if and only if the JSON value is a floating-point number. This excludes signed and unsigned integer values.

+
Returns
true if type is a floating-point number, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_number_float() for all JSON types.,is_number_float}

+
See also
is_number() – check if value is number
+
+is_number_integer() – check if value is an integer number
+
+is_number_unsigned() – check if value is an unsigned integer number
+
Since
version 1.0.0
+ +
+
+ +

◆ is_object()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_object () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is an object

+

This function returns true if and only if the JSON value is an object.

+
Returns
true if type is object, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_object() for all JSON types.,is_object}

+
Since
version 1.0.0
+ +
+
+ +

◆ is_array()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_array () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is an array

+

This function returns true if and only if the JSON value is an array.

+
Returns
true if type is array, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_array() for all JSON types.,is_array}

+
Since
version 1.0.0
+ +
+
+ +

◆ is_string()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_string () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is a string

+

This function returns true if and only if the JSON value is a string.

+
Returns
true if type is string, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_string() for all JSON types.,is_string}

+
Since
version 1.0.0
+ +
+
+ +

◆ is_binary()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_binary () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is a binary array

+

This function returns true if and only if the JSON value is a binary array.

+
Returns
true if type is binary array, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_binary() for all JSON types.,is_binary}

+
Since
version 3.8.0
+ +
+
+ +

◆ is_discarded()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::basic_json::is_discarded () const
+
+inlineconstexprnoexcept
+
+ +

return whether value is discarded

+

This function returns true if and only if the JSON value was discarded during parsing with a callback function (see parser_callback_t).

+
Note
This function will always be false for JSON values after parsing. That is, discarded values can only occur during parsing, but will be removed when inside a structured value or replaced by null in other cases.
+
Returns
true if type is discarded, false otherwise.
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies is_discarded() for all JSON types.,is_discarded}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator value_t()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr nlohmann::basic_json::operator value_t () const
+
+inlineconstexprnoexcept
+
+ +

return the type of the JSON value (implicit)

+

Implicitly return the type of the JSON value as a value from the value_t enumeration.

+
Returns
the type of the JSON value
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+

@liveexample{The following code exemplifies the value_t operator for all JSON types.,operator__value_t}

+
See also
type() – return the type of the JSON value (explicit)
+
+type_name() – return the type as string
+
Since
version 1.0.0
+ +
+
+ +

◆ get_ref_impl()

+ +
+
+
+template<typename ReferenceType , typename ThisType >
+ + + + + +
+ + + + + + + + +
static ReferenceType nlohmann::basic_json::get_ref_impl (ThisType & obj)
+
+inlinestaticprivate
+
+ +

helper function to implement get_ref()

+

This function helps to implement get_ref() without code duplication for const and non-const overloads

+
Template Parameters
+ + +
ThisTypewill be deduced as basic_json or const basic_json
+
+
+
Exceptions
+ + +
type_error.303if ReferenceType does not match underlying value type of the current JSON
+
+
+ +
+
+ +

◆ get() [1/6]

+ +
+
+
+template<typename BasicJsonType , detail::enable_if_t< std::is_same< typename std::remove_const< BasicJsonType >::type, basic_json_t >::value, int > = 0>
+ + + + + +
+ + + + + + + +
basic_json nlohmann::basic_json::get () const
+
+inline
+
+ +

get special-case overload

+

This overloads avoids a lot of template boilerplate, it can be seen as the identity method

+
Template Parameters
+ + +
BasicJsonType== basic_json
+
+
+
Returns
a copy of *this
+

@complexity Constant.

+
Since
version 2.1.0
+ +
+
+ +

◆ get() [2/6]

+ +
+
+
+template<typename BasicJsonType , detail::enable_if_t< !std::is_same< BasicJsonType, basic_json >::value &&detail::is_basic_json< BasicJsonType >::value, int > = 0>
+ + + + + +
+ + + + + + + +
BasicJsonType nlohmann::basic_json::get () const
+
+inline
+
+ +

get special-case overload

+

This overloads converts the current basic_json in a different basic_json type

+
Template Parameters
+ + +
BasicJsonType== basic_json
+
+
+
Returns
a copy of *this, converted into
+
Template Parameters
+ + +
BasicJsonType@complexity Depending on the implementation of the called from_json() method.
+
+
+
Since
version 3.2.0
+ +
+
+ +

◆ get() [3/6]

+ +
+
+
+template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t< !detail::is_basic_json< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value &&!detail::has_non_default_from_json< basic_json_t, ValueType >::value, int > = 0>
+ + + + + +
+ + + + + + + +
ValueType nlohmann::basic_json::get () const
+
+inlinenoexcept
+
+ +

get a value (explicit)

+

Explicit type conversion between the JSON value and a compatible value which is CopyConstructible and DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json() method.

+

The function is equivalent to executing

ValueType ret;
+
JSONSerializer<ValueType>::from_json(*this, ret);
+
return ret;
+

This overloads is chosen if:

    +
  • ValueType is not basic_json,
  • +
  • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&), and
  • +
  • json_serializer<ValueType> does not have a from_json() method of the form ValueType from_json(const basic_json&)
  • +
+
Template Parameters
+ + + +
ValueTypeCVthe provided value type
ValueTypethe returned value type
+
+
+
Returns
copy of the JSON value, converted to ValueType
+
Exceptions
+ + +
whatjson_serializer<ValueType> from_json() method throws
+
+
+

@liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard std::vector<short>\, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string\, json>.,get__ValueType_const}

+
Since
version 2.1.0
+ +
+
+ +

◆ get() [4/6]

+ +
+
+
+template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>, detail::enable_if_t< !std::is_same< basic_json_t, ValueType >::value &&detail::has_non_default_from_json< basic_json_t, ValueType >::value, int > = 0>
+ + + + + +
+ + + + + + + +
ValueType nlohmann::basic_json::get () const
+
+inlinenoexcept
+
+ +

get a value (explicit); special case

+

Explicit type conversion between the JSON value and a compatible value which is not CopyConstructible and not DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json() method.

+

The function is equivalent to executing

return JSONSerializer<ValueTypeCV>::from_json(*this);
+

This overloads is chosen if:

    +
  • ValueType is not basic_json and
  • +
  • json_serializer<ValueType> has a from_json() method of the form ValueType from_json(const basic_json&)
  • +
+
Note
If json_serializer<ValueType> has both overloads of from_json(), this one is chosen.
+
Template Parameters
+ + + +
ValueTypeCVthe provided value type
ValueTypethe returned value type
+
+
+
Returns
copy of the JSON value, converted to ValueType
+
Exceptions
+ + +
whatjson_serializer<ValueType> from_json() method throws
+
+
+
Since
version 2.1.0
+ +
+
+ +

◆ get_to()

+ +
+
+
+template<typename ValueType , detail::enable_if_t< !detail::is_basic_json< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value, int > = 0>
+ + + + + +
+ + + + + + + + +
ValueType& nlohmann::basic_json::get_to (ValueType & v) const
+
+inlinenoexcept
+
+ +

get a value (explicit)

+

Explicit type conversion between the JSON value and a compatible value. The value is filled into the input parameter by calling the json_serializer<ValueType> from_json() method.

+

The function is equivalent to executing

ValueType v;
+
JSONSerializer<ValueType>::from_json(*this, v);
+

This overloads is chosen if:

    +
  • ValueType is not basic_json,
  • +
  • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&), and
  • +
+
Template Parameters
+ + +
ValueTypethe input parameter type.
+
+
+
Returns
the input parameter, allowing chaining calls.
+
Exceptions
+ + +
whatjson_serializer<ValueType> from_json() method throws
+
+
+

@liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard std::vector<short>\, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string\, json>.,get_to}

+
Since
version 3.3.0
+ +
+
+ +

◆ get_ptr() [1/2]

+ +
+
+
+template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
auto nlohmann::basic_json::get_ptr () -> decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>())) +
+
+inlinenoexcept
+
+ +

get a pointer value (implicit)

+

Implicit 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.
+
Template Parameters
+ + +
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t. Enforced by a static assertion.
+
+
+
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
+

@complexity Constant.

+

@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.,get_ptr}

+
Since
version 1.0.0
+ +
+
+ +

◆ get_ptr() [2/2]

+ +
+
+
+template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value &&std::is_const< typename std::remove_pointer< PointerType >::type >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
constexpr auto nlohmann::basic_json::get_ptr () const -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>())) +
+
+inlineconstexprnoexcept
+
+ +

get a pointer value (implicit)

+

get a pointer value (implicit) Implicit 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.
+
Template Parameters
+ + +
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t. Enforced by a static assertion.
+
+
+
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
+

@complexity Constant.

+

@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.,get_ptr}

+
Since
version 1.0.0
+ +
+
+ +

◆ get() [5/6]

+ +
+
+
+template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
auto nlohmann::basic_json::get () -> decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>()) +
+
+inlinenoexcept
+
+ +

get a pointer value (explicit)

+

Explicit pointer access to the internally stored JSON value. No copies are made.

+
Warning
The pointer becomes invalid if the underlying JSON object changes.
+
Template Parameters
+ + +
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
+
+
+
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
+

@complexity Constant.

+

@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.,get__PointerType}

+
See also
get_ptr() for explicit pointer-member access
+
Since
version 1.0.0
+ +
+
+ +

◆ get() [6/6]

+ +
+
+
+template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
constexpr auto nlohmann::basic_json::get () const -> decltype(std::declval<const basic_json_t&>().template get_ptr<PointerType>()) +
+
+inlineconstexprnoexcept
+
+ +

get a pointer value (explicit)

+

get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made.

+
Warning
The pointer becomes invalid if the underlying JSON object changes.
+
Template Parameters
+ + +
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
+
+
+
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
+

@complexity Constant.

+

@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.,get__PointerType}

+
See also
get_ptr() for explicit pointer-member access
+
Since
version 1.0.0
+ +
+
+ +

◆ get_ref() [1/2]

+ +
+
+
+template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
ReferenceType nlohmann::basic_json::get_ref ()
+
+inline
+
+ +

get a reference value (implicit)

+

Implicit reference access to the internally stored JSON value. No copies are made.

+
Warning
Writing data to the referee of the result yields an undefined state.
+
Template Parameters
+ + +
ReferenceTypereference type; must be a reference to array_t, object_t, string_t, boolean_t, number_integer_t, or number_float_t. Enforced by static assertion.
+
+
+
Returns
reference to the internally stored JSON value if the requested reference type ReferenceType fits to the JSON value; throws type_error.303 otherwise
+
Exceptions
+ + +
type_error.303in case passed type ReferenceType is incompatible with the stored JSON value; see example below
+
+
+

@complexity Constant.

+

@liveexample{The example shows several calls to get_ref().,get_ref}

+
Since
version 1.1.0
+ +
+
+ +

◆ get_ref() [2/2]

+ +
+
+
+template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value &&std::is_const< typename std::remove_reference< ReferenceType >::type >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
ReferenceType nlohmann::basic_json::get_ref () const
+
+inline
+
+ +

get a reference value (implicit)

+

get a reference value (implicit) Implicit reference access to the internally stored JSON value. No copies are made.

+
Warning
Writing data to the referee of the result yields an undefined state.
+
Template Parameters
+ + +
ReferenceTypereference type; must be a reference to array_t, object_t, string_t, boolean_t, number_integer_t, or number_float_t. Enforced by static assertion.
+
+
+
Returns
reference to the internally stored JSON value if the requested reference type ReferenceType fits to the JSON value; throws type_error.303 otherwise
+
Exceptions
+ + +
type_error.303in case passed type ReferenceType is incompatible with the stored JSON value; see example below
+
+
+

@complexity Constant.

+

@liveexample{The example shows several calls to get_ref().,get_ref}

+
Since
version 1.1.0
+ +
+
+ +

◆ operator ValueType()

+ +
+
+
+template<typename ValueType , typename std::enable_if< !std::is_pointer< ValueType >::value &&!std::is_same< ValueType, detail::json_ref< basic_json >>::value &&!std::is_same< ValueType, typename string_t::value_type >::value &&!detail::is_basic_json< ValueType >::value &&!std::is_same< ValueType, std::initializer_list< typename string_t::value_type >>::value &&detail::is_detected< detail::get_template_function, const basic_json_t &, ValueType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + +
JSON_EXPLICIT nlohmann::basic_json::operator ValueType () const
+
+inline
+
+ +

get a value (implicit)

+

Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const.

+
Template Parameters
+ + +
ValueTypenon-pointer type compatible to the JSON value, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. The character type of string_t as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to std::string.
+
+
+
Returns
copy of the JSON value, converted to type ValueType
+
Exceptions
+ + +
type_error.302in case passed type ValueType is incompatible to the JSON value type (e.g., the JSON value is of type boolean, but a string is requested); see example below
+
+
+

@complexity Linear in the size of the JSON value.

+

@liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard std::vector<short>\, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string\, json>.,operator__ValueType}

+
Since
version 1.0.0
+ +
+
+ +

◆ get_binary() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
binary_t& nlohmann::basic_json::get_binary ()
+
+inline
+
+
Returns
reference to the binary value
+
Exceptions
+ + +
type_error.302if the value is not binary
+
+
+
See also
is_binary() to check if the value is binary
+
Since
version 3.8.0
+ +
+
+ +

◆ get_binary() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const binary_t& nlohmann::basic_json::get_binary () const
+
+inline
+
+ +

+
Returns
reference to the binary value
+
Exceptions
+ + +
type_error.302if the value is not binary
+
+
+
See also
is_binary() to check if the value is binary
+
Since
version 3.8.0
+ +
+
+ +

◆ at() [1/6]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::at (size_type idx)
+
+inline
+
+ +

access specified array element with bounds checking

+

Returns a reference to the element at specified location idx, with bounds checking.

+
Parameters
+ + +
[in]idxindex of the element to access
+
+
+
Returns
reference to the element at index idx
+
Exceptions
+ + + +
type_error.304if the JSON value is not an array; in this case, calling at with an index makes no sense. See example below.
out_of_range.401if the index idx is out of range of the array; that is, idx >= size(). See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 1.0.0
+

@liveexample{The example below shows how array elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.,at__size_type}

+ +
+
+ +

◆ at() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::at (size_type idx) const
+
+inline
+
+ +

access specified array element with bounds checking

+

Returns a const reference to the element at specified location idx, with bounds checking.

+
Parameters
+ + +
[in]idxindex of the element to access
+
+
+
Returns
const reference to the element at index idx
+
Exceptions
+ + + +
type_error.304if the JSON value is not an array; in this case, calling at with an index makes no sense. See example below.
out_of_range.401if the index idx is out of range of the array; that is, idx >= size(). See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 1.0.0
+

@liveexample{The example below shows how array elements can be read using at(). It also demonstrates the different exceptions that can be thrown., at__size_type_const}

+ +
+
+ +

◆ at() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::at (const typename object_t::key_type & key)
+
+inline
+
+ +

access specified object element with bounds checking

+

Returns a reference to the element at with specified key key, with bounds checking.

+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
reference to the element at key key
+
Exceptions
+ + + +
type_error.304if the JSON value is not an object; in this case, calling at with a key makes no sense. See example below.
out_of_range.403if the key key is is not stored in the object; that is, find(key) == end(). See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Logarithmic in the size of the container.

+
See also
operator[](const typename object_t::key_type&) for unchecked access by reference
+
+value() for access by value with a default value
+
Since
version 1.0.0
+

@liveexample{The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.,at__object_t_key_type}

+ +
+
+ +

◆ at() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::at (const typename object_t::key_type & key) const
+
+inline
+
+ +

access specified object element with bounds checking

+

Returns a const reference to the element at with specified key key, with bounds checking.

+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
const reference to the element at key key
+
Exceptions
+ + + +
type_error.304if the JSON value is not an object; in this case, calling at with a key makes no sense. See example below.
out_of_range.403if the key key is is not stored in the object; that is, find(key) == end(). See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Logarithmic in the size of the container.

+
See also
operator[](const typename object_t::key_type&) for unchecked access by reference
+
+value() for access by value with a default value
+
Since
version 1.0.0
+

@liveexample{The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown., at__object_t_key_type_const}

+ +
+
+ +

◆ operator[]() [1/8]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator[] (size_type idx)
+
+inline
+
+ +

access specified array element

+

Returns a reference to the element at specified location idx.

+
Note
If idx is beyond the range of the array (i.e., idx >= size()), then the array is silently filled up with null values to make idx a valid reference to the last stored element.
+
Parameters
+ + +
[in]idxindex of the element to access
+
+
+
Returns
reference to the element at index idx
+
Exceptions
+ + +
type_error.305if the JSON value is not an array or null; in that cases, using the [] operator with an index makes no sense.
+
+
+

@complexity Constant if idx is in the range of the array. Otherwise linear in idx - size().

+

@liveexample{The example below shows how array elements can be read and written using [] operator. Note the addition of null values.,operatorarray__size_type}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator[]() [2/8]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::operator[] (size_type idx) const
+
+inline
+
+ +

access specified array element

+

Returns a const reference to the element at specified location idx.

+
Parameters
+ + +
[in]idxindex of the element to access
+
+
+
Returns
const reference to the element at index idx
+
Exceptions
+ + +
type_error.305if the JSON value is not an array; in that case, using the [] operator with an index makes no sense.
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how array elements can be read using the [] operator.,operatorarray__size_type_const}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator[]() [3/8]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator[] (const typename object_t::key_type & key)
+
+inline
+
+ +

access specified object element

+

Returns a reference to the element at with specified key key.

+
Note
If key is not found in the object, then it is silently added to the object and filled with a null value to make key a valid reference. In case the value was null before, it is converted to an object.
+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
reference to the element at key key
+
Exceptions
+ + +
type_error.305if the JSON value is not an object or null; in that cases, using the [] operator with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be read and written using the [] operator.,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
+
Since
version 1.0.0
+ +
+
+ +

◆ operator[]() [4/8]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::operator[] (const typename object_t::key_type & key) const
+
+inline
+
+ +

read-only access specified object element

+

Returns a const reference to the element at with specified key key. No bounds checking is performed.

+
Warning
If the element with key key does not exist, the behavior is undefined.
+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
const reference to the element at key key
+
Precondition
The element with key key must exist. This precondition is enforced with an assertion.
+
Exceptions
+ + +
type_error.305if the JSON value is not an object; in that case, using the [] operator with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be read using the [] operator.,operatorarray__key_type_const}

+
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
+
Since
version 1.0.0
+ +
+
+ +

◆ operator[]() [5/8]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator[] (T * key)
+
+inline
+
+ +

access specified object element

+

Returns a reference to the element at with specified key key.

+
Note
If key is not found in the object, then it is silently added to the object and filled with a null value to make key a valid reference. In case the value was null before, it is converted to an object.
+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
reference to the element at key key
+
Exceptions
+ + +
type_error.305if the JSON value is not an object or null; in that cases, using the [] operator with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be read and written using the [] operator.,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
+
Since
version 1.1.0
+ +
+
+ +

◆ operator[]() [6/8]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::operator[] (T * key) const
+
+inline
+
+ +

read-only access specified object element

+

Returns a const reference to the element at with specified key key. No bounds checking is performed.

+
Warning
If the element with key key does not exist, the behavior is undefined.
+
Parameters
+ + +
[in]keykey of the element to access
+
+
+
Returns
const reference to the element at key key
+
Precondition
The element with key key must exist. This precondition is enforced with an assertion.
+
Exceptions
+ + +
type_error.305if the JSON value is not an object; in that case, using the [] operator with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be read using the [] operator.,operatorarray__key_type_const}

+
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
+
Since
version 1.1.0
+ +
+
+ +

◆ value() [1/4]

+ +
+
+
+template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, ValueType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ValueType nlohmann::basic_json::value (const typename object_t::key_type & key,
const ValueType & default_value 
) const
+
+inline
+
+ +

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 {
+
return at(key);
+
} catch(out_of_range) {
+
return default_value;
+
}
+
Note
Unlike at(const typename object_t::key_type&), this function does not throw if the given key key was not found.
+
+Unlike operator[](const typename object_t::key_type& key), this function does not implicitly add an element to the position defined by key. This function is furthermore also applicable to const objects.
+
Parameters
+ + + +
[in]keykey of the element to access
[in]default_valuethe value to return if key is not found
+
+
+
Template Parameters
+ + +
ValueTypetype compatible to JSON values, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. Note the type of the expected value at key and the default value default_value must be compatible.
+
+
+
Returns
copy of the element at key key or default_value if key is not found
+
Exceptions
+ + + +
type_error.302if default_value does not match the type of the value at key
type_error.306if the JSON value is not an object; in that case, using value() with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be queried with a default value.,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
+
Since
version 1.0.0
+ +
+
+ +

◆ value() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
string_t nlohmann::basic_json::value (const typename object_t::key_type & key,
const char * default_value 
) const
+
+inline
+
+ +

overload for a default value of type const char*

+

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 {
+
return at(key);
+
} catch(out_of_range) {
+
return default_value;
+
}
+
Note
Unlike at(const typename object_t::key_type&), this function does not throw if the given key key was not found.
+
+Unlike operator[](const typename object_t::key_type& key), this function does not implicitly add an element to the position defined by key. This function is furthermore also applicable to const objects.
+
Parameters
+ + + +
[in]keykey of the element to access
[in]default_valuethe value to return if key is not found
+
+
+
Template Parameters
+ + +
ValueTypetype compatible to JSON values, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. Note the type of the expected value at key and the default value default_value must be compatible.
+
+
+
Returns
copy of the element at key key or default_value if key is not found
+
Exceptions
+ + + +
type_error.302if default_value does not match the type of the value at key
type_error.306if the JSON value is not an object; in that case, using value() with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be queried with a default value.,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
+
Since
version 1.0.0
+ +
+
+ +

◆ value() [3/4]

+ +
+
+
+template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ValueType nlohmann::basic_json::value (const json_pointerptr,
const ValueType & default_value 
) const
+
+inline
+
+ +

access specified object element via JSON Pointer 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 {
+
return at(ptr);
+
} catch(out_of_range) {
+
return default_value;
+
}
+
Note
Unlike at(const json_pointer&), this function does not throw if the given key key was not found.
+
Parameters
+ + + +
[in]ptra JSON pointer to the element to access
[in]default_valuethe value to return if ptr found no value
+
+
+
Template Parameters
+ + +
ValueTypetype compatible to JSON values, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. Note the type of the expected value at key and the default value default_value must be compatible.
+
+
+
Returns
copy of the element at key key or default_value if key is not found
+
Exceptions
+ + + +
type_error.302if default_value does not match the type of the value at ptr
type_error.306if the JSON value is not an object; in that case, using value() with a key makes no sense.
+
+
+

@complexity Logarithmic in the size of the container.

+

@liveexample{The example below shows how object elements can be queried with a default value.,basic_json__value_ptr}

+
See also
operator[](const json_pointer&) for unchecked access by reference
+
Since
version 2.0.2
+ +
+
+ +

◆ value() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
string_t nlohmann::basic_json::value (const json_pointerptr,
const char * default_value 
) const
+
+inline
+
+ +

overload for a default value of type const char*

+ +
+
+ +

◆ front() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
reference nlohmann::basic_json::front ()
+
+inline
+
+ +

access the first element

+

Returns a reference to the first element in the container. For a JSON container c, the expression c.front() is equivalent to *c.begin().

+
Returns
In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.
+

@complexity Constant.

+
Precondition
The JSON value must not be null (would throw std::out_of_range) or an empty array or object (undefined behavior, guarded by assertions).
+
Postcondition
The JSON value remains unchanged.
+
Exceptions
+ + +
invalid_iterator.214when called on null value
+
+
+

@liveexample{The following code shows an example for front().,front}

+
See also
back() – access the last element
+
Since
version 1.0.0
+ +
+
+ +

◆ front() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reference nlohmann::basic_json::front () const
+
+inline
+
+ +

access the first element

+

Returns a reference to the first element in the container. For a JSON container c, the expression c.front() is equivalent to *c.begin().

+
Returns
In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.
+

@complexity Constant.

+
Precondition
The JSON value must not be null (would throw std::out_of_range) or an empty array or object (undefined behavior, guarded by assertions).
+
Postcondition
The JSON value remains unchanged.
+
Exceptions
+ + +
invalid_iterator.214when called on null value
+
+
+

@liveexample{The following code shows an example for front().,front}

+
See also
back() – access the last element
+
Since
version 1.0.0
+ +
+
+ +

◆ back() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
reference nlohmann::basic_json::back ()
+
+inline
+
+ +

access the last element

+

Returns a reference to the last element in the container. For a JSON container c, the expression c.back() is equivalent to

auto tmp = c.end();
+
--tmp;
+
return *tmp;
+
Returns
In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.
+

@complexity Constant.

+
Precondition
The JSON value must not be null (would throw std::out_of_range) or an empty array or object (undefined behavior, guarded by assertions).
+
Postcondition
The JSON value remains unchanged.
+
Exceptions
+ + +
invalid_iterator.214when called on a null value. See example below.
+
+
+

@liveexample{The following code shows an example for back().,back}

+
See also
front() – access the first element
+
Since
version 1.0.0
+ +
+
+ +

◆ back() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reference nlohmann::basic_json::back () const
+
+inline
+
+ +

access the last element

+

Returns a reference to the last element in the container. For a JSON container c, the expression c.back() is equivalent to

auto tmp = c.end();
+
--tmp;
+
return *tmp;
+
Returns
In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.
+

@complexity Constant.

+
Precondition
The JSON value must not be null (would throw std::out_of_range) or an empty array or object (undefined behavior, guarded by assertions).
+
Postcondition
The JSON value remains unchanged.
+
Exceptions
+ + +
invalid_iterator.214when called on a null value. See example below.
+
+
+

@liveexample{The following code shows an example for back().,back}

+
See also
front() – access the first element
+
Since
version 1.0.0
+ +
+
+ +

◆ erase() [1/4]

+ +
+
+
+template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
IteratorType nlohmann::basic_json::erase (IteratorType pos)
+
+inline
+
+ +

remove element given an iterator

+

Removes the element specified by iterator pos. The iterator pos must be valid and dereferenceable. Thus the end() iterator (which is valid, but is not dereferenceable) cannot be used as a value for pos.

+

If called on a primitive type other than null, the resulting JSON value will be null.

+
Parameters
+ + +
[in]positerator to the element to remove
+
+
+
Returns
Iterator following the last removed element. If the iterator pos refers to the last element, the end() iterator is returned.
+
Template Parameters
+ + +
IteratorTypean iterator or const_iterator
+
+
+
Postcondition
Invalidates iterators and references at or after the point of the erase, including the end() iterator.
+
Exceptions
+ + + + +
type_error.307if called on a null value; example: "cannot use +erase() with null"
invalid_iterator.202if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current +value"
invalid_iterator.205if called on a primitive type with invalid iterator (i.e., any iterator which is not begin()); example: "iterator +out of range"
+
+
+

@complexity The complexity depends on the type:

    +
  • objects: amortized constant
  • +
  • arrays: linear in distance between pos and the end of the container
  • +
  • strings and binary: linear in the length of the member
  • +
  • other types: constant
  • +
+

@liveexample{The example shows the result of erase() for different JSON types.,erase__IteratorType}

+
See also
erase(IteratorType, IteratorType) – removes the elements in the given range
+
+erase(const typename object_t::key_type&) – removes 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.0
+ +
+
+ +

◆ erase() [2/4]

+ +
+
+
+template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IteratorType nlohmann::basic_json::erase (IteratorType first,
IteratorType last 
)
+
+inline
+
+ +

remove elements given an iterator range

+

Removes the element specified by the range [first; last). The iterator first does not need to be dereferenceable if first == last: erasing an empty range is a no-op.

+

If called on a primitive type other than null, the resulting JSON value will be null.

+
Parameters
+ + + +
[in]firstiterator to the beginning of the range to remove
[in]lastiterator past the end of the range to remove
+
+
+
Returns
Iterator following the last removed element. If the iterator second refers to the last element, the end() iterator is returned.
+
Template Parameters
+ + +
IteratorTypean iterator or const_iterator
+
+
+
Postcondition
Invalidates iterators and references at or after the point of the erase, including the end() iterator.
+
Exceptions
+ + + + +
type_error.307if called on a null value; example: "cannot use +erase() with null"
invalid_iterator.203if called on iterators which does not belong to the current JSON value; example: "iterators do not fit current value"
invalid_iterator.204if called on a primitive type with invalid iterators (i.e., if first != begin() and last != end()); example: "iterators out of range"
+
+
+

@complexity The complexity depends on the type:

    +
  • objects: log(size()) + std::distance(first, last)
  • +
  • arrays: linear in the distance between first and last, plus linear in the distance between last and end of the container
  • +
  • strings and binary: linear in the length of the member
  • +
  • other types: constant
  • +
+

@liveexample{The example shows the result of erase() for different JSON types.,erase__IteratorType_IteratorType}

+
See also
erase(IteratorType) – removes the element at a given position
+
+erase(const typename object_t::key_type&) – removes 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.0
+ +
+
+ +

◆ erase() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
size_type nlohmann::basic_json::erase (const typename object_t::key_type & key)
+
+inline
+
+ +

remove element from a JSON object given a key

+

Removes elements from a JSON object with the key value key.

+
Parameters
+ + +
[in]keyvalue of the elements to remove
+
+
+
Returns
Number of elements removed. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).
+
Postcondition
References and iterators to the erased elements are invalidated. Other references and iterators are not affected.
+
Exceptions
+ + +
type_error.307when called on a type other than JSON object; example: "cannot use erase() with null"
+
+
+

@complexity log(size()) + count(key)

+

@liveexample{The example shows the effect of erase().,erase__key_type}

+
See also
erase(IteratorType) – removes the element at a given position
+
+erase(IteratorType, IteratorType) – 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.0
+ +
+
+ +

◆ erase() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::erase (const size_type idx)
+
+inline
+
+ +

remove element from a JSON array given an index

+

Removes element from a JSON array at the index idx.

+
Parameters
+ + +
[in]idxindex of the element to remove
+
+
+
Exceptions
+ + + +
type_error.307when called on a type other than JSON object; example: "cannot use erase() with null"
out_of_range.401when idx >= size(); example: "array index 17 +is out of range"
+
+
+

@complexity Linear in distance between idx and the end of the container.

+

@liveexample{The example shows the effect of erase().,erase__size_type}

+
See also
erase(IteratorType) – removes the element at a given position
+
+erase(IteratorType, IteratorType) – removes the elements in the given range
+
+erase(const typename object_t::key_type&) – removes the element from an object at the given key
+
Since
version 1.0.0
+ +
+
+ +

◆ find() [1/2]

+ +
+
+
+template<typename KeyT >
+ + + + + +
+ + + + + + + + +
iterator nlohmann::basic_json::find (KeyT && key)
+
+inline
+
+ +

find an element in a JSON object

+

Finds an element in a JSON object with key equivalent to key. If the element is not found or the JSON value is not an object, end() is returned.

+
Note
This method always returns end() when executed on a JSON type that is not an object.
+
Parameters
+ + +
[in]keykey value of the element to search for.
+
+
+
Returns
Iterator to an element with key equivalent to key. If no such element is found or the JSON value is not an object, past-the-end (see end()) iterator is returned.
+

@complexity Logarithmic in the size of the JSON object.

+

@liveexample{The example shows how find() is used.,find__key_type}

+
See also
contains(KeyT&&) const – checks whether a key exists
+
Since
version 1.0.0
+ +
+
+ +

◆ find() [2/2]

+ +
+
+
+template<typename KeyT >
+ + + + + +
+ + + + + + + + +
const_iterator nlohmann::basic_json::find (KeyT && key) const
+
+inline
+
+ +

find an element in a JSON object

+

find an element in a JSON object Finds an element in a JSON object with key equivalent to key. If the element is not found or the JSON value is not an object, end() is returned.

+
Note
This method always returns end() when executed on a JSON type that is not an object.
+
Parameters
+ + +
[in]keykey value of the element to search for.
+
+
+
Returns
Iterator to an element with key equivalent to key. If no such element is found or the JSON value is not an object, past-the-end (see end()) iterator is returned.
+

@complexity Logarithmic in the size of the JSON object.

+

@liveexample{The example shows how find() is used.,find__key_type}

+
See also
contains(KeyT&&) const – checks whether a key exists
+
Since
version 1.0.0
+ +
+
+ +

◆ count()

+ +
+
+
+template<typename KeyT >
+ + + + + +
+ + + + + + + + +
size_type nlohmann::basic_json::count (KeyT && key) const
+
+inline
+
+ +

returns the number of occurrences of a key in a JSON object

+

Returns the number of elements with key key. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).

+
Note
This method always returns 0 when executed on a JSON type that is not an object.
+
Parameters
+ + +
[in]keykey value of the element to count
+
+
+
Returns
Number of elements with key key. If the JSON value is not an object, the return value will be 0.
+

@complexity Logarithmic in the size of the JSON object.

+

@liveexample{The example shows how count() is used.,count}

+
Since
version 1.0.0
+ +
+
+ +

◆ contains() [1/2]

+ +
+
+
+template<typename KeyT , typename std::enable_if< !std::is_same< typename std::decay< KeyT >::type, json_pointer >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
bool nlohmann::basic_json::contains (KeyT && key) const
+
+inline
+
+ +

check the existence of an element in a JSON object

+

Check whether an element exists in a JSON object with key equivalent to key. If the element is not found or the JSON value is not an object, false is returned.

+
Note
This method always returns false when executed on a JSON type that is not an object.
+
Parameters
+ + +
[in]keykey value to check its existence.
+
+
+
Returns
true if an element with specified key exists. If no such element with such key is found or the JSON value is not an object, false is returned.
+

@complexity Logarithmic in the size of the JSON object.

+

@liveexample{The following code shows an example for contains().,contains}

+
See also
find(KeyT&&) – returns an iterator to an object element
+
+contains(const json_pointer&) const – checks the existence for a JSON pointer
+
Since
version 3.6.0
+ +
+
+ +

◆ contains() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool nlohmann::basic_json::contains (const json_pointerptr) const
+
+inline
+
+ +

check the existence of an element in a JSON object given a JSON pointer

+

Check whether the given JSON pointer ptr can be resolved in the current JSON value.

+
Note
This method can be executed on any JSON value type.
+
Parameters
+ + +
[in]ptrJSON pointer to check its existence.
+
+
+
Returns
true if the JSON pointer can be resolved to a stored value, false otherwise.
+
Postcondition
If j.contains(ptr) returns true, it is safe to call j[ptr].
+
Exceptions
+ + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
+
+
+

@complexity Logarithmic in the size of the JSON object.

+

@liveexample{The following code shows an example for contains().,contains_json_pointer}

+
See also
contains(KeyT &&) const – checks the existence of a key
+
Since
version 3.7.0
+ +
+
+ +

◆ begin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
iterator nlohmann::basic_json::begin ()
+
+inlinenoexcept
+
+ +

returns an iterator to the first element

+

Returns an iterator to the first element.

+
+ +
+Illustration from cppreference.com
+
Returns
iterator to the first element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
+

@liveexample{The following code shows an example for begin().,begin}

+
See also
cbegin() – returns a const iterator to the beginning
+
+end() – returns an iterator to the end
+
+cend() – returns a const iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ begin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator nlohmann::basic_json::begin () const
+
+inlinenoexcept
+
+ +

returns a const iterator to the first element

+

Returns a const iterator to the first element.

+
+ +
+Illustration from cppreference.com
+
Returns
const iterator to the first element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).begin().
  • +
+

@liveexample{The following code shows an example for cbegin().,cbegin}

+
See also
begin() – returns an iterator to the beginning
+
+end() – returns an iterator to the end
+
+cend() – returns a const iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ cbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator nlohmann::basic_json::cbegin () const
+
+inlinenoexcept
+
+ +

returns a const iterator to the first element

+

Returns a const iterator to the first element.

+
+ +
+Illustration from cppreference.com
+
Returns
const iterator to the first element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).begin().
  • +
+

@liveexample{The following code shows an example for cbegin().,cbegin}

+
See also
begin() – returns an iterator to the beginning
+
+end() – returns an iterator to the end
+
+cend() – returns a const iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ end() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
iterator nlohmann::basic_json::end ()
+
+inlinenoexcept
+
+ +

returns an iterator to one past the last element

+

Returns an iterator to one past the last element.

+
+ +
+Illustration from cppreference.com
+
Returns
iterator one past the last element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
+

@liveexample{The following code shows an example for end().,end}

+
See also
cend() – returns a const iterator to the end
+
+begin() – returns an iterator to the beginning
+
+cbegin() – returns a const iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ end() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator nlohmann::basic_json::end () const
+
+inlinenoexcept
+
+ +

returns a const iterator to one past the last element

+

Returns a const iterator to one past the last element.

+
+ +
+Illustration from cppreference.com
+
Returns
const iterator one past the last element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).end().
  • +
+

@liveexample{The following code shows an example for cend().,cend}

+
See also
end() – returns an iterator to the end
+
+begin() – returns an iterator to the beginning
+
+cbegin() – returns a const iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ cend()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator nlohmann::basic_json::cend () const
+
+inlinenoexcept
+
+ +

returns a const iterator to one past the last element

+

Returns a const iterator to one past the last element.

+
+ +
+Illustration from cppreference.com
+
Returns
const iterator one past the last element
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).end().
  • +
+

@liveexample{The following code shows an example for cend().,cend}

+
See also
end() – returns an iterator to the end
+
+begin() – returns an iterator to the beginning
+
+cbegin() – returns a const iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator nlohmann::basic_json::rbegin ()
+
+inlinenoexcept
+
+ +

returns an iterator to the reverse-beginning

+

Returns an iterator to the reverse-beginning; that is, the last element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of reverse_iterator(end()).
  • +
+

@liveexample{The following code shows an example for rbegin().,rbegin}

+
See also
crbegin() – returns a const reverse iterator to the beginning
+
+rend() – returns a reverse iterator to the end
+
+crend() – returns a const reverse iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator nlohmann::basic_json::rbegin () const
+
+inlinenoexcept
+
+ +

returns a const reverse iterator to the last element

+

Returns a const iterator to the reverse-beginning; that is, the last element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).rbegin().
  • +
+

@liveexample{The following code shows an example for crbegin().,crbegin}

+
See also
rbegin() – returns a reverse iterator to the beginning
+
+rend() – returns a reverse iterator to the end
+
+crend() – returns a const reverse iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ rend() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator nlohmann::basic_json::rend ()
+
+inlinenoexcept
+
+ +

returns an iterator to the reverse-end

+

Returns an iterator to the reverse-end; that is, one before the first element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of reverse_iterator(begin()).
  • +
+

@liveexample{The following code shows an example for rend().,rend}

+
See also
crend() – returns a const reverse iterator to the end
+
+rbegin() – returns a reverse iterator to the beginning
+
+crbegin() – returns a const reverse iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ rend() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator nlohmann::basic_json::rend () const
+
+inlinenoexcept
+
+ +

returns a const reverse iterator to one before the first

+

Returns a const reverse iterator to the reverse-end; that is, one before the first element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).rend().
  • +
+

@liveexample{The following code shows an example for crend().,crend}

+
See also
rend() – returns a reverse iterator to the end
+
+rbegin() – returns a reverse iterator to the beginning
+
+crbegin() – returns a const reverse iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ crbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator nlohmann::basic_json::crbegin () const
+
+inlinenoexcept
+
+ +

returns a const reverse iterator to the last element

+

Returns a const iterator to the reverse-beginning; that is, the last element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).rbegin().
  • +
+

@liveexample{The following code shows an example for crbegin().,crbegin}

+
See also
rbegin() – returns a reverse iterator to the beginning
+
+rend() – returns a reverse iterator to the end
+
+crend() – returns a const reverse iterator to the end
+
Since
version 1.0.0
+ +
+
+ +

◆ crend()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator nlohmann::basic_json::crend () const
+
+inlinenoexcept
+
+ +

returns a const reverse iterator to one before the first

+

Returns a const reverse iterator to the reverse-end; that is, one before the first element.

+
+ +
+Illustration from cppreference.com
+

@complexity Constant.

+

@requirement This function helps basic_json satisfying the ReversibleContainer requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of const_cast<const basic_json&>(*this).rend().
  • +
+

@liveexample{The following code shows an example for crend().,crend}

+
See also
rend() – returns a reverse iterator to the end
+
+rbegin() – returns a reverse iterator to the beginning
+
+crbegin() – returns a const reverse iterator to the beginning
+
Since
version 1.0.0
+ +
+
+ +

◆ iterator_wrapper() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static iteration_proxy<iterator> nlohmann::basic_json::iterator_wrapper (reference ref)
+
+inlinestaticnoexcept
+
+ +

wrapper to access iterator member functions in range-based for

+

This function 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.

+

For loop without iterator_wrapper:

+
for (auto it = j_object.begin(); it != j_object.end(); ++it)
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+

Range-based for loop without iterator proxy:

+
for (auto it : j_object)
+
{
+
// "it" is of type json::reference and has no key() member
+
std::cout << "value: " << it << '\n';
+
}
+

Range-based for loop with iterator proxy:

+
for (auto it : json::iterator_wrapper(j_object))
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+
Note
When iterating over an array, key() will return the index of the element as string (see example).
+
Parameters
+ + +
[in]refreference to a JSON value
+
+
+
Returns
iteration proxy object wrapping ref with an interface to use in range-based for loops
+

@liveexample{The following code shows how the wrapper is used,iterator_wrapper}

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Note
The name of this function is not yet final and may change in the future.
+
Deprecated:
This stream operator is deprecated and will be removed in future 4.0.0 of the library. Please use items() instead; that is, replace json::iterator_wrapper(j) with j.items().
+ +
+
+ +

◆ iterator_wrapper() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static iteration_proxy<const_iterator> nlohmann::basic_json::iterator_wrapper (const_reference ref)
+
+inlinestaticnoexcept
+
+ +

wrapper to access iterator member functions in range-based for

+

This function 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.

+

For loop without iterator_wrapper:

+
for (auto it = j_object.begin(); it != j_object.end(); ++it)
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+

Range-based for loop without iterator proxy:

+
for (auto it : j_object)
+
{
+
// "it" is of type json::reference and has no key() member
+
std::cout << "value: " << it << '\n';
+
}
+

Range-based for loop with iterator proxy:

+
for (auto it : json::iterator_wrapper(j_object))
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+
Note
When iterating over an array, key() will return the index of the element as string (see example).
+
Parameters
+ + +
[in]refreference to a JSON value
+
+
+
Returns
iteration proxy object wrapping ref with an interface to use in range-based for loops
+

@liveexample{The following code shows how the wrapper is used,iterator_wrapper}

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Note
The name of this function is not yet final and may change in the future.
+
Deprecated:
This stream operator is deprecated and will be removed in future 4.0.0 of the library. Please use items() instead; that is, replace json::iterator_wrapper(j) with j.items().
+ +
+
+ +

◆ items() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
iteration_proxy<iterator> nlohmann::basic_json::items ()
+
+inlinenoexcept
+
+ +

helper to access iterator member functions in range-based for

+

This function 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.

+

For loop without items() function:

+
for (auto it = j_object.begin(); it != j_object.end(); ++it)
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+

Range-based for loop without items() function:

+
for (auto it : j_object)
+
{
+
// "it" is of type json::reference and has no key() member
+
std::cout << "value: " << it << '\n';
+
}
+

Range-based for loop with items() function:

+
for (auto& el : j_object.items())
+
{
+
std::cout << "key: " << el.key() << ", value:" << el.value() << '\n';
+
}
+

The items() function also allows to use structured bindings (C++17):

+
for (auto& [key, val] : j_object.items())
+
{
+
std::cout << "key: " << key << ", value:" << val << '\n';
+
}
+
Note
When iterating over an array, key() will return the index of the element as string (see example). For primitive types (e.g., numbers), key() returns an empty string.
+
Warning
Using items() on temporary objects is dangerous. Make sure the object's lifetime exeeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.
+
Returns
iteration proxy object wrapping ref with an interface to use in range-based for loops
+

@liveexample{The following code shows how the function is used.,items}

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 3.1.0, structured bindings support since 3.5.0.
+ +
+
+ +

◆ items() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
iteration_proxy<const_iterator> nlohmann::basic_json::items () const
+
+inlinenoexcept
+
+ +

helper to access iterator member functions in range-based for

+

This function 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.

+

For loop without items() function:

+
for (auto it = j_object.begin(); it != j_object.end(); ++it)
+
{
+
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
+
}
+

Range-based for loop without items() function:

+
for (auto it : j_object)
+
{
+
// "it" is of type json::reference and has no key() member
+
std::cout << "value: " << it << '\n';
+
}
+

Range-based for loop with items() function:

+
for (auto& el : j_object.items())
+
{
+
std::cout << "key: " << el.key() << ", value:" << el.value() << '\n';
+
}
+

The items() function also allows to use structured bindings (C++17):

+
for (auto& [key, val] : j_object.items())
+
{
+
std::cout << "key: " << key << ", value:" << val << '\n';
+
}
+
Note
When iterating over an array, key() will return the index of the element as string (see example). For primitive types (e.g., numbers), key() returns an empty string.
+
Warning
Using items() on temporary objects is dangerous. Make sure the object's lifetime exeeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.
+
Returns
iteration proxy object wrapping ref with an interface to use in range-based for loops
+

@liveexample{The following code shows how the function is used.,items}

+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 3.1.0, structured bindings support since 3.5.0.
+ +
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool nlohmann::basic_json::empty () const
+
+inlinenoexcept
+
+ +

checks whether the container is empty.

+

Checks if a JSON value has no elements (i.e. whether its size is 0).

+
Returns
The return value depends on the different types and is defined as follows: + + + + + + + + + + + + + + + + +
Value type return value
null true
boolean false
string false
number false
binary false
object result of function object_t::empty()
array result of function array_t::empty()
+
+

@liveexample{The following code uses empty() to check if a JSON object contains any elements.,empty}

+

@complexity Constant, as long as array_t and object_t satisfy the Container concept; that is, their empty() functions have constant complexity.

+

@iterators No changes.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+
Note
This function does not return whether a string stored as JSON value is empty - it returns whether the JSON container itself is empty which is false in the case of a string.
+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of begin() == end().
  • +
+
See also
size() – returns the number of elements
+
Since
version 1.0.0
+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
size_type nlohmann::basic_json::size () const
+
+inlinenoexcept
+
+ +

returns the number of elements

+

Returns the number of elements in a JSON value.

+
Returns
The return value depends on the different types and is defined as follows: + + + + + + + + + + + + + + + + +
Value type return value
null 0
boolean 1
string 1
number 1
binary 1
object result of function object_t::size()
array result of function array_t::size()
+
+

@liveexample{The following code calls size() on the different value types.,size}

+

@complexity Constant, as long as array_t and object_t satisfy the Container concept; that is, their size() functions have constant complexity.

+

@iterators No changes.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+
Note
This function does not return the length of a string stored as JSON value - it returns the number of elements in the JSON value which is 1 in the case of a string.
+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of std::distance(begin(), end()).
  • +
+
See also
empty() – checks whether the container is empty
+
+max_size() – returns the maximal number of elements
+
Since
version 1.0.0
+ +
+
+ +

◆ max_size()

+ +
+
+ + + + + +
+ + + + + + + +
size_type nlohmann::basic_json::max_size () const
+
+inlinenoexcept
+
+ +

returns the maximum possible number of elements

+

Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the JSON value.

+
Returns
The return value depends on the different types and is defined as follows: + + + + + + + + + + + + + + + + +
Value type return value
null 0 (same as size())
boolean 1 (same as size())
string 1 (same as size())
number 1 (same as size())
binary 1 (same as size())
object result of function object_t::max_size()
array result of function array_t::max_size()
+
+

@liveexample{The following code calls max_size() on the different value types. Note the output is implementation specific.,max_size}

+

@complexity Constant, as long as array_t and object_t satisfy the Container concept; that is, their max_size() functions have constant complexity.

+

@iterators No changes.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@requirement This function helps basic_json satisfying the Container requirements:

    +
  • The complexity is constant.
  • +
  • Has the semantics of returning b.size() where b is the largest possible JSON value.
  • +
+
See also
size() – returns the number of elements
+
Since
version 1.0.0
+ +
+
+ +

◆ clear()

+ +
+
+ + + + + +
+ + + + + + + +
void nlohmann::basic_json::clear ()
+
+inlinenoexcept
+
+ +

clears the contents

+

Clears the content of a JSON value and resets it to the default value as if basic_json(value_t) would have been called with the current value type from type():

+ + + + + + + + + + + + + + + + + +
Value type initial value
null null
boolean false
string ""
number 0
binary An empty byte vector
object {}
array []
+
Postcondition
Has the same effect as calling
*this = basic_json(type());
+
+

@liveexample{The example below shows the effect of clear() to different JSON types.,clear}

+

@complexity Linear in the size of the JSON value.

+

@iterators All iterators, pointers and references related to this container are invalidated.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+
See also
basic_json(value_t) – constructor that creates an object with the same value than calling clear()
+
Since
version 1.0.0
+ +
+
+ +

◆ push_back() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::push_back (basic_json && val)
+
+inline
+
+ +

add an object to an array

+

Appends the given element val to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending val.

+
Parameters
+ + +
[in]valthe value to add to the JSON array
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON array or null; example: "cannot use push_back() with number"
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.,push_back}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator+=() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator+= (basic_json && val)
+
+inline
+
+ +

add an object to an array

+

add an object to an array Appends the given element val to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending val.

+
Parameters
+ + +
[in]valthe value to add to the JSON array
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON array or null; example: "cannot use push_back() with number"
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.,push_back}

+
Since
version 1.0.0
+ +
+
+ +

◆ push_back() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::push_back (const basic_jsonval)
+
+inline
+
+ +

add an object to an array

+

add an object to an array Appends the given element val to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending val.

+
Parameters
+ + +
[in]valthe value to add to the JSON array
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON array or null; example: "cannot use push_back() with number"
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.,push_back}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator+=() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator+= (const basic_jsonval)
+
+inline
+
+ +

add an object to an array

+

add an object to an array Appends the given element val to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending val.

+
Parameters
+ + +
[in]valthe value to add to the JSON array
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON array or null; example: "cannot use push_back() with number"
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.,push_back}

+
Since
version 1.0.0
+ +
+
+ +

◆ push_back() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::push_back (const typename object_t::value_type & val)
+
+inline
+
+ +

add an object to an object

+

Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

+
Parameters
+ + +
[in]valthe value to add to the JSON object
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON object or null; example: "cannot use push_back() with number"
+
+
+

@complexity Logarithmic in the size of the container, O(log(size())).

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.,push_back__object_t__value}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator+=() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator+= (const typename object_t::value_type & val)
+
+inline
+
+ +

add an object to an object

+

add an object to an object Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

+
Parameters
+ + +
[in]valthe value to add to the JSON object
+
+
+
Exceptions
+ + +
type_error.308when called on a type other than JSON object or null; example: "cannot use push_back() with number"
+
+
+

@complexity Logarithmic in the size of the container, O(log(size())).

+

@liveexample{The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.,push_back__object_t__value}

+
Since
version 1.0.0
+ +
+
+ +

◆ push_back() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::push_back (initializer_list_t init)
+
+inline
+
+ +

add an object to an object

+

This function allows to use push_back with an initializer list. In case

+
    +
  1. the current value is an object,
  2. +
  3. the initializer list init contains only two elements, and
  4. +
  5. the first element of init is a string,
  6. +
+

init is converted into an object element and added using push_back(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using push_back(basic_json&&).

+
Parameters
+ + +
[in]initan initializer list
+
+
+

@complexity Linear in the size of the initializer list init.

+
Note
This function is required to resolve an ambiguous overload error, because pairs like {"key", "value"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see https://github.com/nlohmann/json/issues/235 for more information.
+

@liveexample{The example shows how initializer lists are treated as objects when possible.,push_back__initializer_list}

+ +
+
+ +

◆ operator+=() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator+= (initializer_list_t init)
+
+inline
+
+ +

add an object to an object

+

add an object to an object This function allows to use push_back with an initializer list. In case

+
    +
  1. the current value is an object,
  2. +
  3. the initializer list init contains only two elements, and
  4. +
  5. the first element of init is a string,
  6. +
+

init is converted into an object element and added using push_back(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using push_back(basic_json&&).

+
Parameters
+ + +
[in]initan initializer list
+
+
+

@complexity Linear in the size of the initializer list init.

+
Note
This function is required to resolve an ambiguous overload error, because pairs like {"key", "value"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see https://github.com/nlohmann/json/issues/235 for more information.
+

@liveexample{The example shows how initializer lists are treated as objects when possible.,push_back__initializer_list}

+ +
+
+ +

◆ emplace_back()

+ +
+
+
+template<class... Args>
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::emplace_back (Args &&... args)
+
+inline
+
+ +

add an object to an array

+

Creates a JSON value from the passed parameters args to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending the value created from args.

+
Parameters
+ + +
[in]argsarguments to forward to a constructor of basic_json
+
+
+
Template Parameters
+ + +
Argscompatible types to create a basic_json object
+
+
+
Returns
reference to the inserted element
+
Exceptions
+ + +
type_error.311when called on a type other than JSON array or null; example: "cannot use emplace_back() with number"
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows how push_back() can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.,emplace_back}

+
Since
version 2.0.8, returns reference since 3.7.0
+ +
+
+ +

◆ emplace()

+ +
+
+
+template<class... Args>
+ + + + + +
+ + + + + + + + +
std::pair<iterator, bool> nlohmann::basic_json::emplace (Args &&... args)
+
+inline
+
+ +

add an object to an object if key does not exist

+

Inserts a new element into a JSON object constructed in-place with the given args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from args.

+
Parameters
+ + +
[in]argsarguments to forward to a constructor of basic_json
+
+
+
Template Parameters
+ + +
Argscompatible types to create a basic_json object
+
+
+
Returns
a pair consisting of an iterator to the inserted element, or the already-existing element if no insertion happened, and a bool denoting whether the insertion took place.
+
Exceptions
+ + +
type_error.311when called on a type other than JSON object or null; example: "cannot use emplace() with number"
+
+
+

@complexity Logarithmic in the size of the container, O(log(size())).

+

@liveexample{The example shows how emplace() can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object. Further note how no value is added if there was already one value stored with the same key.,emplace}

+
Since
version 2.0.8
+ +
+
+ +

◆ insert_iterator()

+ +
+
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert_iterator (const_iterator pos,
Args &&... args 
)
+
+inline
+
+

Helper for insertion of an iterator

Note
: This uses std::distance to support GCC 4.8, see https://github.com/nlohmann/json/pull/1257
+ +
+
+ +

◆ insert() [1/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert (const_iterator pos,
const basic_jsonval 
)
+
+inline
+
+ +

inserts element

+

Inserts element val before iterator pos.

+
Parameters
+ + + +
[in]positerator before which the content will be inserted; may be the end() iterator
[in]valelement to insert
+
+
+
Returns
iterator pointing to the inserted val.
+
Exceptions
+ + + +
type_error.309if called on JSON values other than arrays; example: "cannot use insert() with string"
invalid_iterator.202if pos is not an iterator of *this; example: "iterator does not fit current value"
+
+
+

@complexity Constant plus linear in the distance between pos and end of the container.

+

@liveexample{The example shows how insert() is used.,insert}

+
Since
version 1.0.0
+ +
+
+ +

◆ insert() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert (const_iterator pos,
basic_json && val 
)
+
+inline
+
+ +

inserts element

+

inserts element Inserts element val before iterator pos.

+
Parameters
+ + + +
[in]positerator before which the content will be inserted; may be the end() iterator
[in]valelement to insert
+
+
+
Returns
iterator pointing to the inserted val.
+
Exceptions
+ + + +
type_error.309if called on JSON values other than arrays; example: "cannot use insert() with string"
invalid_iterator.202if pos is not an iterator of *this; example: "iterator does not fit current value"
+
+
+

@complexity Constant plus linear in the distance between pos and end of the container.

+

@liveexample{The example shows how insert() is used.,insert}

+
Since
version 1.0.0
+ +
+
+ +

◆ insert() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert (const_iterator pos,
size_type cnt,
const basic_jsonval 
)
+
+inline
+
+ +

inserts elements

+

Inserts cnt copies of val before iterator pos.

+
Parameters
+ + + + +
[in]positerator before which the content will be inserted; may be the end() iterator
[in]cntnumber of copies of val to insert
[in]valelement to insert
+
+
+
Returns
iterator pointing to the first element inserted, or pos if cnt==0
+
Exceptions
+ + + +
type_error.309if called on JSON values other than arrays; example: "cannot use insert() with string"
invalid_iterator.202if pos is not an iterator of *this; example: "iterator does not fit current value"
+
+
+

@complexity Linear in cnt plus linear in the distance between pos and end of the container.

+

@liveexample{The example shows how insert() is used.,insert__count}

+
Since
version 1.0.0
+ +
+
+ +

◆ insert() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert (const_iterator pos,
const_iterator first,
const_iterator last 
)
+
+inline
+
+ +

inserts elements

+

Inserts elements from range [first, last) before iterator pos.

+
Parameters
+ + + + +
[in]positerator before which the content will be inserted; may be the end() iterator
[in]firstbegin of the range of elements to insert
[in]lastend of the range of elements to insert
+
+
+
Exceptions
+ + + + + +
type_error.309if called on JSON values other than arrays; example: "cannot use insert() with string"
invalid_iterator.202if pos is not an iterator of *this; example: "iterator does not fit current value"
invalid_iterator.210if first and last do not belong to the same JSON value; example: "iterators do not fit"
invalid_iterator.211if first or last are iterators into container for which insert is called; example: "passed iterators may not +belong to container"
+
+
+
Returns
iterator pointing to the first element inserted, or pos if first==last
+

@complexity Linear in std::distance(first, last) plus linear in the distance between pos and end of the container.

+

@liveexample{The example shows how insert() is used.,insert__range}

+
Since
version 1.0.0
+ +
+
+ +

◆ insert() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator nlohmann::basic_json::insert (const_iterator pos,
initializer_list_t ilist 
)
+
+inline
+
+ +

inserts elements

+

Inserts elements from initializer list ilist before iterator pos.

+
Parameters
+ + + +
[in]positerator before which the content will be inserted; may be the end() iterator
[in]ilistinitializer list to insert the values from
+
+
+
Exceptions
+ + + +
type_error.309if called on JSON values other than arrays; example: "cannot use insert() with string"
invalid_iterator.202if pos is not an iterator of *this; example: "iterator does not fit current value"
+
+
+
Returns
iterator pointing to the first element inserted, or pos if ilist is empty
+

@complexity Linear in ilist.size() plus linear in the distance between pos and end of the container.

+

@liveexample{The example shows how insert() is used.,insert__ilist}

+
Since
version 1.0.0
+ +
+
+ +

◆ insert() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void nlohmann::basic_json::insert (const_iterator first,
const_iterator last 
)
+
+inline
+
+ +

inserts elements

+

Inserts elements from range [first, last).

+
Parameters
+ + + +
[in]firstbegin of the range of elements to insert
[in]lastend of the range of elements to insert
+
+
+
Exceptions
+ + + + +
type_error.309if called on JSON values other than objects; example: "cannot use insert() with string"
invalid_iterator.202if iterator first or last does does not point to an object; example: "iterators first and last must point to +objects"
invalid_iterator.210if first and last do not belong to the same JSON value; example: "iterators do not fit"
+
+
+

@complexity Logarithmic: O(N*log(size() + N)), where N is the number of elements to insert.

+

@liveexample{The example shows how insert() is used.,insert__range_object}

+
Since
version 3.0.0
+ +
+
+ +

◆ update() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::update (const_reference j)
+
+inline
+
+ +

updates a JSON object from another object, overwriting existing keys

+

Inserts all values from JSON object j and overwrites existing keys.

+
Parameters
+ + +
[in]jJSON object to read values from
+
+
+
Exceptions
+ + +
type_error.312if called on JSON values other than objects; example: "cannot use update() with string"
+
+
+

@complexity O(N*log(size() + N)), where N is the number of elements to insert.

+

@liveexample{The example shows how update() is used.,update}

+
See also
https://docs.python.org/3.6/library/stdtypes.html#dict.update
+
Since
version 3.0.0
+ +
+
+ +

◆ update() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void nlohmann::basic_json::update (const_iterator first,
const_iterator last 
)
+
+inline
+
+ +

updates a JSON object from another object, overwriting existing keys

+

Inserts all values from from range [first, last) and overwrites existing keys.

+
Parameters
+ + + +
[in]firstbegin of the range of elements to insert
[in]lastend of the range of elements to insert
+
+
+
Exceptions
+ + + + +
type_error.312if called on JSON values other than objects; example: "cannot use update() with string"
invalid_iterator.202if iterator first or last does does not point to an object; example: "iterators first and last must point to +objects"
invalid_iterator.210if first and last do not belong to the same JSON value; example: "iterators do not fit"
+
+
+

@complexity O(N*log(size() + N)), where N is the number of elements to insert.

+

@liveexample{The example shows how update() is used__range.,update}

+
See also
https://docs.python.org/3.6/library/stdtypes.html#dict.update
+
Since
version 3.0.0
+ +
+
+ +

◆ swap() [1/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (reference other)
+
+inlinenoexcept
+
+ +

exchanges the values

+

Exchanges the contents of the JSON value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.

+
Parameters
+ + +
[in,out]otherJSON value to exchange the contents with
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how JSON values can be swapped with swap().,swap__reference}

+
Since
version 1.0.0
+ +
+
+ +

◆ swap() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (array_tother)
+
+inline
+
+ +

exchanges the values

+

Exchanges the contents of a JSON array with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.

+
Parameters
+ + +
[in,out]otherarray to exchange the contents with
+
+
+
Exceptions
+ + +
type_error.310when JSON value is not an array; example: "cannot +use swap() with string"
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how arrays can be swapped with swap().,swap__array_t}

+
Since
version 1.0.0
+ +
+
+ +

◆ swap() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (object_tother)
+
+inline
+
+ +

exchanges the values

+

Exchanges the contents of a JSON object with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.

+
Parameters
+ + +
[in,out]otherobject to exchange the contents with
+
+
+
Exceptions
+ + +
type_error.310when JSON value is not an object; example: "cannot use swap() with string"
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how objects can be swapped with swap().,swap__object_t}

+
Since
version 1.0.0
+ +
+
+ +

◆ swap() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (string_tother)
+
+inline
+
+ +

exchanges the values

+

Exchanges the contents of a JSON string with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.

+
Parameters
+ + +
[in,out]otherstring to exchange the contents with
+
+
+
Exceptions
+ + +
type_error.310when JSON value is not a string; example: "cannot +use swap() with boolean"
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how strings can be swapped with swap().,swap__string_t}

+
Since
version 1.0.0
+ +
+
+ +

◆ swap() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (binary_tother)
+
+inline
+
+ +

exchanges the values

+

Exchanges the contents of a JSON string with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.

+
Parameters
+ + +
[in,out]otherbinary to exchange the contents with
+
+
+
Exceptions
+ + +
type_error.310when JSON value is not a string; example: "cannot +use swap() with boolean"
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how strings can be swapped with swap().,swap__binary_t}

+
Since
version 3.8.0
+ +
+
+ +

◆ swap() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::swap (typename binary_t::container_typeother)
+
+inline
+
+ +

+ +
+
+ +

◆ parse() [1/2]

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::parse (InputType && i,
const parser_callback_t cb = nullptr,
const bool allow_exceptions = true,
const bool ignore_comments = false 
)
+
+inlinestatic
+
+ +

deserialize from a compatible input

+
Template Parameters
+ + +
InputTypeA compatible input, for instance
    +
  • an std::istream object
  • +
  • a FILE pointer
  • +
  • a C-style array of characters
  • +
  • a pointer to a null-terminated string of single byte characters
  • +
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
  • +
+
+
+
+
Parameters
+ + + + + +
[in]iinput to read from
[in]cba parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
[in]ignore_commentswhether comments should be ignored and treated like whitespace (true) or yield a parse error (true); (optional, false by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + + + +
parse_error.101if a parse error occurs; example: ""unexpected end of input; expected string literal""
parse_error.102if to_unicode fails or surrogate error
parse_error.103if to_unicode fails
+
+
+

@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 or reading from the input i has a super-linear complexity.

+
Note
A UTF-8 byte order mark is silently ignored.
+

@liveexample{The example below demonstrates the parse() function reading from an array.,parse__array__parser_callback_t}

+

@liveexample{The example below demonstrates the parse() function with and without callback function.,parse__string__parser_callback_t}

+

@liveexample{The example below demonstrates the parse() function with and without callback function.,parse__istream__parser_callback_t}

+

@liveexample{The example below demonstrates the parse() function reading from a contiguous container.,parse__contiguouscontainer__parser_callback_t}

+
Since
version 2.0.3 (contiguous containers); version 3.9.0 allowed to ignore comments.
+ +
+
+ +

◆ parse() [2/2]

+ +
+
+
+template<typename IteratorType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::parse (IteratorType first,
IteratorType last,
const parser_callback_t cb = nullptr,
const bool allow_exceptions = true,
const bool ignore_comments = false 
)
+
+inlinestatic
+
+ +

deserialize from a pair of character iterators

+

The value_type of the iterator must be a integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

+
Parameters
+ + + + + + +
[in]firstiterator to start of character range
[in]lastiterator to end of character range
[in]cba parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
[in]ignore_commentswhether comments should be ignored and treated like whitespace (true) or yield a parse error (true); (optional, false by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + + + +
parse_error.101if a parse error occurs; example: ""unexpected end of input; expected string literal""
parse_error.102if to_unicode fails or surrogate error
parse_error.103if to_unicode fails
+
+
+ +
+
+ +

◆ accept()

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool nlohmann::basic_json::accept (InputType && i,
const bool ignore_comments = false 
)
+
+inlinestatic
+
+ +

check if the input is valid JSON

+

Unlike the parse(InputType&&, const parser_callback_t,const bool) function, this function neither throws an exception in case of invalid JSON input (i.e., a parse error) nor creates diagnostic information.

+
Template Parameters
+ + +
InputTypeA compatible input, for instance
    +
  • an std::istream object
  • +
  • a FILE pointer
  • +
  • a C-style array of characters
  • +
  • a pointer to a null-terminated string of single byte characters
  • +
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
  • +
+
+
+
+
Parameters
+ + + +
[in]iinput to read from
[in]ignore_commentswhether comments should be ignored and treated like whitespace (true) or yield a parse error (true); (optional, false by default)
+
+
+
Returns
Whether the input read from i is valid JSON.
+

@complexity Linear in the length of the input. The parser is a predictive LL(1) parser.

+
Note
A UTF-8 byte order mark is silently ignored.
+

@liveexample{The example below demonstrates the accept() function reading from a string.,accept__string}

+ +
+
+ +

◆ sax_parse()

+ +
+
+
+template<typename InputType , typename SAX >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static bool nlohmann::basic_json::sax_parse (InputType && i,
SAX * sax,
input_format_t format = input_format_t::json,
const bool strict = true,
const bool ignore_comments = false 
)
+
+inlinestatic
+
+ +

generate SAX events

+

The SAX event lister must follow the interface of json_sax.

+

This function reads from a compatible input. Examples are:

    +
  • an std::istream object
  • +
  • a FILE pointer
  • +
  • a C-style array of characters
  • +
  • a pointer to a null-terminated string of single byte characters
  • +
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
  • +
+
Parameters
+ + + + + + +
[in]iinput to read from
[in,out]saxSAX event listener
[in]formatthe format to parse (JSON, CBOR, MessagePack, or UBJSON)
[in]strictwhether the input has to be consumed completely
[in]ignore_commentswhether comments should be ignored and treated like whitespace (true) or yield a parse error (true); (optional, false by default); only applies to the JSON file format.
+
+
+
Returns
return value of the last processed SAX event
+
Exceptions
+ + + + +
parse_error.101if a parse error occurs; example: ""unexpected end of input; expected string literal""
parse_error.102if to_unicode fails or surrogate error
parse_error.103if to_unicode fails
+
+
+

@complexity Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the SAX consumer sax has a super-linear complexity.

+
Note
A UTF-8 byte order mark is silently ignored.
+

@liveexample{The example below demonstrates the sax_parse() function reading from string and processing the events with a user-defined SAX event consumer.,sax_parse}

+
Since
version 3.2.0
+ +
+
+ +

◆ type_name()

+ +
+
+ + + + + +
+ + + + + + + +
const JSON_HEDLEY_RETURNS_NON_NULL char* nlohmann::basic_json::type_name () const
+
+inlinenoexcept
+
+ +

return the type as string

+

Returns the type name as string to be used in error messages - usually to indicate that a function was called on a wrong JSON type.

+
Returns
a string representation of a the m_type member: + + + + + + + + + + + + + + + + + + +
Value type return value
null "null"
boolean "boolean"
string "string"
number "number" (for all number types)
object "object"
array "array"
binary "binary"
discarded "discarded"
+
+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@complexity Constant.

+

@liveexample{The following code exemplifies type_name() for all JSON types.,type_name}

+
See also
type() – return the type of the JSON value
+
+operator value_t() – return the type of the JSON value (implicit)
+
Since
version 1.0.0, public since 2.1.0, const char* and noexcept since 3.0.0
+ +
+
+ +

◆ to_cbor()

+ +
+
+ + + + + +
+ + + + + + + + +
static std::vector<uint8_t> nlohmann::basic_json::to_cbor (const basic_jsonj)
+
+inlinestatic
+
+ +

create a CBOR serialization of a given JSON value

+

Serializes a given JSON value j to a byte vector using the CBOR (Concise Binary Object Representation) serialization format. CBOR is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

+

The library uses the following mapping from JSON values types to CBOR types according to the CBOR specification (RFC 7049):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JSON value type value/range CBOR type first byte
null null Null 0xF6
boolean true True 0xF5
boolean false False 0xF4
number_integer -9223372036854775808..-2147483649 Negative integer (8 bytes follow) 0x3B
number_integer -2147483648..-32769 Negative integer (4 bytes follow) 0x3A
number_integer -32768..-129 Negative integer (2 bytes follow) 0x39
number_integer -128..-25 Negative integer (1 byte follow) 0x38
number_integer -24..-1 Negative integer 0x20..0x37
number_integer 0..23 Integer 0x00..0x17
number_integer 24..255 Unsigned integer (1 byte follow) 0x18
number_integer 256..65535 Unsigned integer (2 bytes follow) 0x19
number_integer 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A
number_integer 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B
number_unsigned 0..23 Integer 0x00..0x17
number_unsigned 24..255 Unsigned integer (1 byte follow) 0x18
number_unsigned 256..65535 Unsigned integer (2 bytes follow) 0x19
number_unsigned 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A
number_unsigned 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B
number_float any value representable by a float Single-Precision Float 0xFA
number_float any value NOT representable by a float Double-Precision Float 0xFB
string length: 0..23 UTF-8 string 0x60..0x77
string length: 23..255 UTF-8 string (1 byte follow) 0x78
string length: 256..65535 UTF-8 string (2 bytes follow) 0x79
string length: 65536..4294967295 UTF-8 string (4 bytes follow) 0x7A
string length: 4294967296..18446744073709551615 UTF-8 string (8 bytes follow) 0x7B
array size: 0..23 array 0x80..0x97
array size: 23..255 array (1 byte follow) 0x98
array size: 256..65535 array (2 bytes follow) 0x99
array size: 65536..4294967295 array (4 bytes follow) 0x9A
array size: 4294967296..18446744073709551615 array (8 bytes follow) 0x9B
object size: 0..23 map 0xA0..0xB7
object size: 23..255 map (1 byte follow) 0xB8
object size: 256..65535 map (2 bytes follow) 0xB9
object size: 65536..4294967295 map (4 bytes follow) 0xBA
object size: 4294967296..18446744073709551615 map (8 bytes follow) 0xBB
binary size: 0..23 byte string 0x40..0x57
binary size: 23..255 byte string (1 byte follow) 0x58
binary size: 256..65535 byte string (2 bytes follow) 0x59
binary size: 65536..4294967295 byte string (4 bytes follow) 0x5A
binary size: 4294967296..18446744073709551615 byte string (8 bytes follow) 0x5B
+
Note
The mapping is complete in the sense that any JSON value type can be converted to a CBOR value.
+
+If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.
+
+The following CBOR types are not used in the conversion:
    +
  • UTF-8 strings terminated by "break" (0x7F)
  • +
  • arrays terminated by "break" (0x9F)
  • +
  • maps terminated by "break" (0xBF)
  • +
  • byte strings terminated by "break" (0x5F)
  • +
  • date/time (0xC0..0xC1)
  • +
  • bignum (0xC2..0xC3)
  • +
  • decimal fraction (0xC4)
  • +
  • bigfloat (0xC5)
  • +
  • expected conversions (0xD5..0xD7)
  • +
  • simple values (0xE0..0xF3, 0xF8)
  • +
  • undefined (0xF7)
  • +
  • half-precision floats (0xF9)
  • +
  • break (0xFF)
  • +
+
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Returns
CBOR serialization as byte vector
+

@complexity Linear in the size of the JSON value j.

+

@liveexample{The example shows the serialization of a JSON value to a byte vector in CBOR format.,to_cbor}

+
See also
http://cbor.io
+
+from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the analogous deserialization
+
+to_msgpack(const basic_json&) for the related MessagePack format
+
+to_ubjson(const basic_json&, const bool, const bool) for the related UBJSON format
+
Since
version 2.0.9; compact representation of floating-point numbers since version 3.8.0
+ +
+
+ +

◆ to_msgpack()

+ +
+
+ + + + + +
+ + + + + + + + +
static std::vector<uint8_t> nlohmann::basic_json::to_msgpack (const basic_jsonj)
+
+inlinestatic
+
+ +

create a MessagePack serialization of a given JSON value

+

Serializes a given JSON value j to a byte vector using the MessagePack serialization format. MessagePack is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

+

The library uses the following mapping from JSON values types to MessagePack types according to the MessagePack specification:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JSON value type value/range MessagePack type first byte
null null nil 0xC0
boolean true true 0xC3
boolean false false 0xC2
number_integer -9223372036854775808..-2147483649 int64 0xD3
number_integer -2147483648..-32769 int32 0xD2
number_integer -32768..-129 int16 0xD1
number_integer -128..-33 int8 0xD0
number_integer -32..-1 negative fixint 0xE0..0xFF
number_integer 0..127 positive fixint 0x00..0x7F
number_integer 128..255 uint 8 0xCC
number_integer 256..65535 uint 16 0xCD
number_integer 65536..4294967295 uint 32 0xCE
number_integer 4294967296..18446744073709551615 uint 64 0xCF
number_unsigned 0..127 positive fixint 0x00..0x7F
number_unsigned 128..255 uint 8 0xCC
number_unsigned 256..65535 uint 16 0xCD
number_unsigned 65536..4294967295 uint 32 0xCE
number_unsigned 4294967296..18446744073709551615 uint 64 0xCF
number_float any value representable by a float float 32 0xCA
number_float any value NOT representable by a float float 64 0xCB
string length: 0..31 fixstr 0xA0..0xBF
string length: 32..255 str 8 0xD9
string length: 256..65535 str 16 0xDA
string length: 65536..4294967295 str 32 0xDB
array size: 0..15 fixarray 0x90..0x9F
array size: 16..65535 array 16 0xDC
array size: 65536..4294967295 array 32 0xDD
object size: 0..15 fix map 0x80..0x8F
object size: 16..65535 map 16 0xDE
object size: 65536..4294967295 map 32 0xDF
binary size: 0..255 bin 8 0xC4
binary size: 256..65535 bin 16 0xC5
binary size: 65536..4294967295 bin 32 0xC6
+
Note
The mapping is complete in the sense that any JSON value type can be converted to a MessagePack value.
+
+The following values can not be converted to a MessagePack value:
    +
  • strings with more than 4294967295 bytes
  • +
  • byte strings with more than 4294967295 bytes
  • +
  • arrays with more than 4294967295 elements
  • +
  • objects with more than 4294967295 elements
  • +
+
+
+Any MessagePack output created to_msgpack can be successfully parsed by from_msgpack.
+
+If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Returns
MessagePack serialization as byte vector
+

@complexity Linear in the size of the JSON value j.

+

@liveexample{The example shows the serialization of a JSON value to a byte vector in MessagePack format.,to_msgpack}

+
See also
http://msgpack.org
+
+from_msgpack for the analogous deserialization
+
+to_cbor(const basic_json& for the related CBOR format
+
+to_ubjson(const basic_json&, const bool, const bool) for the related UBJSON format
+
Since
version 2.0.9
+ +
+
+ +

◆ to_ubjson()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static std::vector<uint8_t> nlohmann::basic_json::to_ubjson (const basic_jsonj,
const bool use_size = false,
const bool use_type = false 
)
+
+inlinestatic
+
+ +

create a UBJSON serialization of a given JSON value

+

Serializes a given JSON value j to a byte vector using the UBJSON (Universal Binary JSON) serialization format. UBJSON aims to be more compact than JSON itself, yet more efficient to parse.

+

The library uses the following mapping from JSON values types to UBJSON types according to the UBJSON specification:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JSON value type value/range UBJSON type marker
null null null Z
boolean true true T
boolean false false F
number_integer -9223372036854775808..-2147483649 int64 L
number_integer -2147483648..-32769 int32 l
number_integer -32768..-129 int16 I
number_integer -128..127 int8 i
number_integer 128..255 uint8 U
number_integer 256..32767 int16 I
number_integer 32768..2147483647 int32 l
number_integer 2147483648..9223372036854775807 int64 L
number_unsigned 0..127 int8 i
number_unsigned 128..255 uint8 U
number_unsigned 256..32767 int16 I
number_unsigned 32768..2147483647 int32 l
number_unsigned 2147483648..9223372036854775807 int64 L
number_unsigned 2147483649..18446744073709551615 high-precision H
number_float any value float64 D
string with shortest length indicator string S
array see notes on optimized format array [
object see notes on optimized format map {
+
Note
The mapping is complete in the sense that any JSON value type can be converted to a UBJSON value.
+
+The following values can not be converted to a UBJSON value:
    +
  • strings with more than 9223372036854775807 bytes (theoretical)
  • +
+
+
+The following markers are not used in the conversion:
    +
  • Z: no-op values are not created.
  • +
  • C: single-byte strings are serialized with S markers.
  • +
+
+
+Any UBJSON output created to_ubjson can be successfully parsed by from_ubjson.
+
+If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.
+
+The optimized formats for containers are supported: Parameter use_size adds size information to the beginning of a container and removes the closing marker. Parameter use_type further checks whether all elements of a container have the same type and adds the type marker to the beginning of the container. The use_type parameter must only be used together with use_size = true. Note that use_size = true alone may result in larger representations - the benefit of this parameter is that the receiving side is immediately informed on the number of elements of the container.
+
+If the JSON data contains the binary type, the value stored is a list of integers, as suggested by the UBJSON documentation. In particular, this means that serialization and the deserialization of a JSON containing binary values into UBJSON and back will result in a different JSON object.
+
Parameters
+ + + + +
[in]jJSON value to serialize
[in]use_sizewhether to add size annotations to container types
[in]use_typewhether to add type annotations to container types (must be combined with use_size = true)
+
+
+
Returns
UBJSON serialization as byte vector
+

@complexity Linear in the size of the JSON value j.

+

@liveexample{The example shows the serialization of a JSON value to a byte vector in UBJSON format.,to_ubjson}

+
See also
http://ubjson.org
+
+from_ubjson(detail::input_adapter&&, const bool, const bool) for the analogous deserialization
+
+to_cbor(const basic_json& for the related CBOR format
+
+to_msgpack(const basic_json&) for the related MessagePack format
+
Since
version 3.1.0
+ +
+
+ +

◆ to_bson() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
static std::vector<uint8_t> nlohmann::basic_json::to_bson (const basic_jsonj)
+
+inlinestatic
+
+ +

Serializes the given JSON object j to BSON and returns a vector containing the corresponding BSON-representation.

+

BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are stored as a single entity (a so-called document).

+

The library uses the following mapping from JSON values types to BSON types:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JSON value type value/range BSON type marker
null null null 0x0A
boolean true, false boolean 0x08
number_integer -9223372036854775808..-2147483649 int64 0x12
number_integer -2147483648..2147483647 int32 0x10
number_integer 2147483648..9223372036854775807 int64 0x12
number_unsigned 0..2147483647 int32 0x10
number_unsigned 2147483648..9223372036854775807 int64 0x12
number_unsigned 9223372036854775808..18446744073709551615
number_float any value double 0x01
string any value string 0x02
array any value document 0x04
object any value document 0x03
binary any value binary 0x05
+
Warning
The mapping is incomplete, since only JSON-objects (and things contained therein) can be serialized to BSON. Also, integers larger than 9223372036854775807 cannot be serialized to BSON, and the keys may not contain U+0000, since they are serialized a zero-terminated c-strings.
+
Exceptions
+ + + + +
out_of_range.407if j.is_number_unsigned() && j.get<std::uint64_t>() > 9223372036854775807
out_of_range.409if a key in j contains a NULL (U+0000)
type_error.317if !j.is_object()
+
+
+
Precondition
The input j is required to be an object: j.is_object() == true.
+
Note
Any BSON output created via to_bson can be successfully parsed by from_bson.
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Returns
BSON serialization as byte vector
+

@complexity Linear in the size of the JSON value j.

+

@liveexample{The example shows the serialization of a JSON value to a byte vector in BSON format.,to_bson}

+
See also
http://bsonspec.org/spec.html
+
+from_bson(detail::input_adapter&&, const bool strict) for the analogous deserialization
+
+to_ubjson(const basic_json&, const bool, const bool) for the related UBJSON format
+
+to_cbor(const basic_json&) for the related CBOR format
+
+to_msgpack(const basic_json&) for the related MessagePack format
+ +
+
+ +

◆ to_bson() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void nlohmann::basic_json::to_bson (const basic_jsonj,
detail::output_adapter< uint8_t > o 
)
+
+inlinestatic
+
+ +

Serializes the given JSON object j to BSON and forwards the corresponding BSON-representation to the given output_adapter o.

+
Parameters
+ + + +
jThe JSON object to convert to BSON.
oThe output adapter that receives the binary BSON representation.
+
+
+
Precondition
The input j shall be an object: j.is_object() == true
+
See also
to_bson(const basic_json&)
+ +
+
+ +

◆ to_bson() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void nlohmann::basic_json::to_bson (const basic_jsonj,
detail::output_adapter< char > o 
)
+
+inlinestatic
+
+ +

Serializes the given JSON object j to BSON and forwards the corresponding BSON-representation to the given output_adapter o.

+
Parameters
+ + + +
jThe JSON object to convert to BSON.
oThe output adapter that receives the binary BSON representation.
+
+
+
Precondition
The input j shall be an object: j.is_object() == true
+
See also
to_bson(const basic_json&)
+ +
+
+ +

◆ from_cbor() [1/2]

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_cbor (InputType && i,
const bool strict = true,
const bool allow_exceptions = true,
const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error 
)
+
+inlinestatic
+
+ +

create a JSON value from an input in CBOR format

+

Deserializes a given input i to a JSON value using the CBOR (Concise Binary Object Representation) serialization format.

+

The library maps CBOR types to JSON value types as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CBOR type JSON value type first byte
Integer number_unsigned 0x00..0x17
Unsigned integer number_unsigned 0x18
Unsigned integer number_unsigned 0x19
Unsigned integer number_unsigned 0x1A
Unsigned integer number_unsigned 0x1B
Negative integer number_integer 0x20..0x37
Negative integer number_integer 0x38
Negative integer number_integer 0x39
Negative integer number_integer 0x3A
Negative integer number_integer 0x3B
Byte string binary 0x40..0x57
Byte string binary 0x58
Byte string binary 0x59
Byte string binary 0x5A
Byte string binary 0x5B
UTF-8 string string 0x60..0x77
UTF-8 string string 0x78
UTF-8 string string 0x79
UTF-8 string string 0x7A
UTF-8 string string 0x7B
UTF-8 string string 0x7F
array array 0x80..0x97
array array 0x98
array array 0x99
array array 0x9A
array array 0x9B
array array 0x9F
map object 0xA0..0xB7
map object 0xB8
map object 0xB9
map object 0xBA
map object 0xBB
map object 0xBF
False false 0xF4
True true 0xF5
Null null 0xF6
Half-Precision Float number_float 0xF9
Single-Precision Float number_float 0xFA
Double-Precision Float number_float 0xFB
+
Warning
The mapping is incomplete in the sense that not all CBOR types can be converted to a JSON value. The following CBOR types are not supported and will yield parse errors (parse_error.112):
    +
  • date/time (0xC0..0xC1)
  • +
  • bignum (0xC2..0xC3)
  • +
  • decimal fraction (0xC4)
  • +
  • bigfloat (0xC5)
  • +
  • expected conversions (0xD5..0xD7)
  • +
  • simple values (0xE0..0xF3, 0xF8)
  • +
  • undefined (0xF7)
  • +
+
+
+CBOR allows map keys of any type, whereas JSON only allows strings as keys in object values. Therefore, CBOR maps with keys other than UTF-8 strings are rejected (parse_error.113).
+
Note
Any CBOR output created to_cbor can be successfully parsed by from_cbor.
+
Parameters
+ + + + + +
[in]ian input in CBOR format convertible to an input adapter
[in]strictwhether to expect the input to be consumed until EOF (true by default)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
[in]tag_handlerhow to treat CBOR tags (optional, error by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + + + +
parse_error.110if the given input ends prematurely or the end of file was not reached when strict was set to true
parse_error.112if unsupported features from CBOR were used in the given input v or if the input is not valid CBOR
parse_error.113if a string was expected as map key, but not found
+
+
+

@complexity Linear in the size of the input i.

+

@liveexample{The example shows the deserialization of a byte vector in CBOR format to a JSON value.,from_cbor}

+
See also
http://cbor.io
+
+to_cbor(const basic_json&) for the analogous serialization
+
+from_msgpack(detail::input_adapter&&, const bool, const bool) for the related MessagePack format
+
+from_ubjson(detail::input_adapter&&, const bool, const bool) for the related UBJSON format
+
Since
version 2.0.9; parameter start_index since 2.1.1; changed to consume input adapters, removed start_index parameter, and added strict parameter since 3.0.0; added allow_exceptions parameter since 3.2.0; added tag_handler parameter since 3.9.0.
+ +
+
+ +

◆ from_cbor() [2/2]

+ +
+
+
+template<typename IteratorType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_cbor (IteratorType first,
IteratorType last,
const bool strict = true,
const bool allow_exceptions = true,
const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error 
)
+
+inlinestatic
+
+ +

+ +
+
+ +

◆ from_msgpack() [1/2]

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_msgpack (InputType && i,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

create a JSON value from an input in MessagePack format

+

Deserializes a given input i to a JSON value using the MessagePack serialization format.

+

The library maps MessagePack types to JSON value types as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MessagePack type JSON value type first byte
positive fixint number_unsigned 0x00..0x7F
fixmap object 0x80..0x8F
fixarray array 0x90..0x9F
fixstr string 0xA0..0xBF
nil null 0xC0
false false 0xC2
true true 0xC3
float 32 number_float 0xCA
float 64 number_float 0xCB
uint 8 number_unsigned 0xCC
uint 16 number_unsigned 0xCD
uint 32 number_unsigned 0xCE
uint 64 number_unsigned 0xCF
int 8 number_integer 0xD0
int 16 number_integer 0xD1
int 32 number_integer 0xD2
int 64 number_integer 0xD3
str 8 string 0xD9
str 16 string 0xDA
str 32 string 0xDB
array 16 array 0xDC
array 32 array 0xDD
map 16 object 0xDE
map 32 object 0xDF
bin 8 binary 0xC4
bin 16 binary 0xC5
bin 32 binary 0xC6
ext 8 binary 0xC7
ext 16 binary 0xC8
ext 32 binary 0xC9
fixext 1 binary 0xD4
fixext 2 binary 0xD5
fixext 4 binary 0xD6
fixext 8 binary 0xD7
fixext 16 binary 0xD8
negative fixint number_integer 0xE0-0xFF
+
Note
Any MessagePack output created to_msgpack can be successfully parsed by from_msgpack.
+
Parameters
+ + + + +
[in]ian input in MessagePack format convertible to an input adapter
[in]strictwhether to expect the input to be consumed until EOF (true by default)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + + + +
parse_error.110if the given input ends prematurely or the end of file was not reached when strict was set to true
parse_error.112if unsupported features from MessagePack were used in the given input i or if the input is not valid MessagePack
parse_error.113if a string was expected as map key, but not found
+
+
+

@complexity Linear in the size of the input i.

+

@liveexample{The example shows the deserialization of a byte vector in MessagePack format to a JSON value.,from_msgpack}

+
See also
http://msgpack.org
+
+to_msgpack(const basic_json&) for the analogous serialization
+
+from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the related CBOR format
+
+from_ubjson(detail::input_adapter&&, const bool, const bool) for the related UBJSON format
+
+from_bson(detail::input_adapter&&, const bool, const bool) for the related BSON format
+
Since
version 2.0.9; parameter start_index since 2.1.1; changed to consume input adapters, removed start_index parameter, and added strict parameter since 3.0.0; added allow_exceptions parameter since 3.2.0
+ +
+
+ +

◆ from_msgpack() [2/2]

+ +
+
+
+template<typename IteratorType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_msgpack (IteratorType first,
IteratorType last,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

+ +
+
+ +

◆ from_ubjson() [1/2]

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_ubjson (InputType && i,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

create a JSON value from an input in UBJSON format

+

Deserializes a given input i to a JSON value using the UBJSON (Universal Binary JSON) serialization format.

+

The library maps UBJSON types to JSON value types as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UBJSON type JSON value type marker
no-op no value, next value is read N
null null Z
false false F
true true T
float32 number_float d
float64 number_float D
uint8 number_unsigned U
int8 number_integer i
int16 number_integer I
int32 number_integer l
int64 number_integer L
high-precision number number_integer, number_unsigned, or number_float - depends on number string 'H'
string string S
char string C
array array (optimized values are supported) [
object object (optimized values are supported) {
+
Note
The mapping is complete in the sense that any UBJSON value can be converted to a JSON value.
+
Parameters
+ + + + +
[in]ian input in UBJSON format convertible to an input adapter
[in]strictwhether to expect the input to be consumed until EOF (true by default)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + + + +
parse_error.110if the given input ends prematurely or the end of file was not reached when strict was set to true
parse_error.112if a parse error occurs
parse_error.113if a string could not be parsed successfully
+
+
+

@complexity Linear in the size of the input i.

+

@liveexample{The example shows the deserialization of a byte vector in UBJSON format to a JSON value.,from_ubjson}

+
See also
http://ubjson.org
+
+to_ubjson(const basic_json&, const bool, const bool) for the analogous serialization
+
+from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the related CBOR format
+
+from_msgpack(detail::input_adapter&&, const bool, const bool) for the related MessagePack format
+
+from_bson(detail::input_adapter&&, const bool, const bool) for the related BSON format
+
Since
version 3.1.0; added allow_exceptions parameter since 3.2.0
+ +
+
+ +

◆ from_ubjson() [2/2]

+ +
+
+
+template<typename IteratorType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_ubjson (IteratorType first,
IteratorType last,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

+ +
+
+ +

◆ from_bson() [1/2]

+ +
+
+
+template<typename InputType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_bson (InputType && i,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

Create a JSON value from an input in BSON format.

+

Deserializes a given input i to a JSON value using the BSON (Binary JSON) serialization format.

+

The library maps BSON record types to JSON value types as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSON type BSON marker byte JSON value type
double 0x01 number_float
string 0x02 string
document 0x03 object
array 0x04 array
binary 0x05 still unsupported
undefined 0x06 still unsupported
ObjectId 0x07 still unsupported
boolean 0x08 boolean
UTC Date-Time 0x09 still unsupported
null 0x0A null
Regular Expr. 0x0B still unsupported
DB Pointer 0x0C still unsupported
JavaScript Code 0x0D still unsupported
Symbol 0x0E still unsupported
JavaScript Code 0x0F still unsupported
int32 0x10 number_integer
Timestamp 0x11 still unsupported
128-bit decimal float 0x13 still unsupported
Max Key 0x7F still unsupported
Min Key 0xFF still unsupported
+
Warning
The mapping is incomplete. The unsupported mappings are indicated in the table above.
+
Parameters
+ + + + +
[in]ian input in BSON format convertible to an input adapter
[in]strictwhether to expect the input to be consumed until EOF (true by default)
[in]allow_exceptionswhether to throw exceptions in case of a parse error (optional, true by default)
+
+
+
Returns
deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded.
+
Exceptions
+ + +
parse_error.114if an unsupported BSON record type is encountered
+
+
+

@complexity Linear in the size of the input i.

+

@liveexample{The example shows the deserialization of a byte vector in BSON format to a JSON value.,from_bson}

+
See also
http://bsonspec.org/spec.html
+
+to_bson(const basic_json&) for the analogous serialization
+
+from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the related CBOR format
+
+from_msgpack(detail::input_adapter&&, const bool, const bool) for the related MessagePack format
+
+from_ubjson(detail::input_adapter&&, const bool, const bool) for the related UBJSON format
+ +
+
+ +

◆ from_bson() [2/2]

+ +
+
+
+template<typename IteratorType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::from_bson (IteratorType first,
IteratorType last,
const bool strict = true,
const bool allow_exceptions = true 
)
+
+inlinestatic
+
+ +

+ +
+
+ +

◆ operator[]() [7/8]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::operator[] (const json_pointerptr)
+
+inline
+
+ +

access specified element via JSON Pointer

+

Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. Similar to operator[](const typename object_t::key_type&), null values are created in arrays and objects if necessary.

+

In particular:

    +
  • If the JSON pointer points to an object key that does not exist, it is created an filled with a null value before a reference to it is returned.
  • +
  • If the JSON pointer points to an array index that does not exist, it is created an filled with a null value before a reference to it is returned. All indices between the current maximum and the given index are also filled with null.
  • +
  • The special value - is treated as a synonym for the index past the end.
  • +
+
Parameters
+ + +
[in]ptra JSON pointer
+
+
+
Returns
reference to the element pointed to by ptr
+

@complexity Constant.

+
Exceptions
+ + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.404if the JSON pointer can not be resolved
+
+
+

@liveexample{The behavior is shown in the example.,operatorjson_pointer}

+
Since
version 2.0.0
+ +
+
+ +

◆ operator[]() [8/8]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::operator[] (const json_pointerptr) const
+
+inline
+
+ +

access specified element via JSON Pointer

+

Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. The function does not change the JSON value; no null values are created. In particular, the special value - yields an exception.

+
Parameters
+ + +
[in]ptrJSON pointer to the desired element
+
+
+
Returns
const reference to the element pointed to by ptr
+

@complexity Constant.

+
Exceptions
+ + + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.402if the array index '-' is used
out_of_range.404if the JSON pointer can not be resolved
+
+
+

@liveexample{The behavior is shown in the example.,operatorjson_pointer_const}

+
Since
version 2.0.0
+ +
+
+ +

◆ at() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
reference nlohmann::basic_json::at (const json_pointerptr)
+
+inline
+
+ +

access specified element via JSON Pointer

+

Returns a reference to the element at with specified JSON pointer ptr, with bounds checking.

+
Parameters
+ + +
[in]ptrJSON pointer to the desired element
+
+
+
Returns
reference to the element pointed to by ptr
+
Exceptions
+ + + + + + + +
parse_error.106if an array index in the passed JSON pointer ptr begins with '0'. See example below.
parse_error.109if an array index in the passed JSON pointer ptr is not a number. See example below.
out_of_range.401if an array index in the passed JSON pointer ptr is out of range. See example below.
out_of_range.402if the array index '-' is used in the passed JSON pointer ptr. As at provides checked access (and no elements are implicitly inserted), the index '-' is always invalid. See example below.
out_of_range.403if the JSON pointer describes a key of an object which cannot be found. See example below.
out_of_range.404if the JSON pointer ptr can not be resolved. See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 2.0.0
+

@liveexample{The behavior is shown in the example.,at_json_pointer}

+ +
+
+ +

◆ at() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + +
const_reference nlohmann::basic_json::at (const json_pointerptr) const
+
+inline
+
+ +

access specified element via JSON Pointer

+

Returns a const reference to the element at with specified JSON pointer ptr, with bounds checking.

+
Parameters
+ + +
[in]ptrJSON pointer to the desired element
+
+
+
Returns
reference to the element pointed to by ptr
+
Exceptions
+ + + + + + + +
parse_error.106if an array index in the passed JSON pointer ptr begins with '0'. See example below.
parse_error.109if an array index in the passed JSON pointer ptr is not a number. See example below.
out_of_range.401if an array index in the passed JSON pointer ptr is out of range. See example below.
out_of_range.402if the array index '-' is used in the passed JSON pointer ptr. As at provides checked access (and no elements are implicitly inserted), the index '-' is always invalid. See example below.
out_of_range.403if the JSON pointer describes a key of an object which cannot be found. See example below.
out_of_range.404if the JSON pointer ptr can not be resolved. See example below.
+
+
+

@exceptionsafety Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

+

@complexity Constant.

+
Since
version 2.0.0
+

@liveexample{The behavior is shown in the example.,at_json_pointer_const}

+ +
+
+ +

◆ flatten()

+ +
+
+ + + + + +
+ + + + + + + +
basic_json nlohmann::basic_json::flatten () const
+
+inline
+
+ +

return flattened JSON value

+

The function creates a JSON object whose keys are JSON pointers (see RFC 6901) and whose values are all primitive. The original JSON value can be restored using the unflatten() function.

+
Returns
an object that maps JSON pointers to primitive values
+
Note
Empty objects and arrays are flattened to null and will not be reconstructed correctly by the unflatten() function.
+

@complexity Linear in the size the JSON value.

+

@liveexample{The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.,flatten}

+
See also
unflatten() for the reverse function
+
Since
version 2.0.0
+ +
+
+ +

◆ unflatten()

+ +
+
+ + + + + +
+ + + + + + + +
basic_json nlohmann::basic_json::unflatten () const
+
+inline
+
+ +

unflatten a previously flattened JSON value

+

The function restores the arbitrary nesting of a JSON value that has been flattened before using the flatten() function. The JSON value must meet certain constraints:

    +
  1. The value must be an object.
  2. +
  3. The keys must be JSON pointers (see RFC 6901)
  4. +
  5. The mapped values must be primitive JSON types.
  6. +
+
Returns
the original JSON from a flattened version
+
Note
Empty objects and arrays are flattened by flatten() to null values and can not unflattened to their original type. Apart from this example, for a JSON value j, the following is always true: j == j.flatten().unflatten().
+

@complexity Linear in the size the JSON value.

+
Exceptions
+ + + +
type_error.314if value is not an object
type_error.315if object values are not primitive
+
+
+

@liveexample{The following code shows how a flattened JSON object is unflattened into the original nested JSON object.,unflatten}

+
See also
flatten() for the reverse function
+
Since
version 2.0.0
+ +
+
+ +

◆ patch()

+ +
+
+ + + + + +
+ + + + + + + + +
basic_json nlohmann::basic_json::patch (const basic_jsonjson_patch) const
+
+inline
+
+ +

applies a JSON patch

+

JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JSON) document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.

+
Parameters
+ + +
[in]json_patchJSON patch document
+
+
+
Returns
patched document
+
Note
The application of a patch is atomic: Either all operations succeed and the patched document is returned or an exception is thrown. In any case, the original value is not changed: the patch is applied to a copy of the value.
+
Exceptions
+ + + + + + + +
parse_error.104if the JSON patch does not consist of an array of objects
parse_error.105if the JSON patch is malformed (e.g., mandatory attributes are missing); example: "operation add must have member path"
out_of_range.401if an array index is out of range.
out_of_range.403if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: "key baz not +found"
out_of_range.405if JSON pointer has no parent ("add", "remove", "move")
other_error.501if "test" operation was unsuccessful
+
+
+

@complexity Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.

+

@liveexample{The following code shows how a JSON patch is applied to a value.,patch}

+
See also
diffcreate a JSON patch by comparing two JSON values
+
+RFC 6902 (JSON Patch)
+
+RFC 6901 (JSON Pointer)
+
Since
version 2.0.0
+ +
+
+ +

◆ diff()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json nlohmann::basic_json::diff (const basic_jsonsource,
const basic_jsontarget,
const std::string & path = "" 
)
+
+inlinestatic
+
+ +

creates a diff as a JSON patch

+

Creates a JSON Patch so that value source can be changed into the value target by calling patch function.

+
Invariant
For two JSON values source and target, the following code yields always true:
source.patch(diff(source, target)) == target;
+
+
Note
Currently, only remove, add, and replace operations are generated.
+
Parameters
+ + + + +
[in]sourceJSON value to compare from
[in]targetJSON value to compare against
[in]pathhelper value to create JSON pointers
+
+
+
Returns
a JSON patch to convert the source to target
+

@complexity Linear in the lengths of source and target.

+

@liveexample{The following code shows how a JSON patch is created as a diff for two JSON values.,diff}

+
See also
patch – apply a JSON patch
+
+merge_patch – apply a JSON Merge Patch
+
+RFC 6902 (JSON Patch)
+
Since
version 2.0.0
+ +
+
+ +

◆ merge_patch()

+ +
+
+ + + + + +
+ + + + + + + + +
void nlohmann::basic_json::merge_patch (const basic_jsonapply_patch)
+
+inline
+
+ +

applies a JSON Merge Patch

+

The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content. This function applies a merge patch to the current JSON value.

+

The function implements the following algorithm from Section 2 of RFC 7396 (JSON Merge Patch):

+
define MergePatch(Target, Patch):
+
if Patch is an Object:
+
if Target is not an Object:
+
Target = {} // Ignore the contents and set it to an empty Object
+
for each Name/Value pair in Patch:
+
if Value is null:
+
if Name exists in Target:
+
remove the Name/Value pair from Target
+
else:
+
Target[Name] = MergePatch(Target[Name], Value)
+
return Target
+
else:
+
return Patch
+

Thereby, Target is the current object; that is, the patch is applied to the current value.

+
Parameters
+ + +
[in]apply_patchthe patch to apply
+
+
+

@complexity Linear in the lengths of patch.

+

@liveexample{The following code shows how a JSON Merge Patch is applied to a JSON document.,merge_patch}

+
See also
patch – apply a JSON patch
+
+RFC 7396 (JSON Merge Patch)
+
Since
version 3.0.0
+ +
+
+

Friends And Related Function Documentation

+ +

◆ swap

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void swap (reference left,
reference right 
)
+
+friend
+
+ +

exchanges the values

+

Exchanges the contents of the JSON value from left with those of right. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. implemented as a friend function callable via ADL.

+
Parameters
+ + + +
[in,out]leftJSON value to exchange the contents with
[in,out]rightJSON value to exchange the contents with
+
+
+

@complexity Constant.

+

@liveexample{The example below shows how JSON values can be swapped with swap().,swap__reference}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator== [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator== (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: equal

+

Compares two JSON values for equality according to the following rules:

    +
  • Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same according to their respective operator==.
  • +
  • Integer and floating-point numbers are automatically converted before comparison. Note that two NaN values are always treated as unequal.
  • +
  • Two JSON null values are equal.
  • +
+
Note
Floating-point inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default. To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance
template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>
+
inline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept
+
{
+
return std::abs(a - b) <= epsilon;
+
}
+
Or you can self-defined operator equal function like this:
bool my_equal(const_reference lhs, const_reference rhs) {
+
const auto lhs_type lhs.type();
+
const auto rhs_type rhs.type();
+
if (lhs_type == rhs_type) {
+
switch(lhs_type)
+
// self_defined case
+ +
return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();
+
// other cases remain the same with the original
+
...
+
}
+
...
+
}
+
+
+NaN values never compare equal to themselves or to other NaN values.
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are equal
+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@complexity Linear.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__equal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator== [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator== (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: equal

+

comparison: equal Compares two JSON values for equality according to the following rules:

    +
  • Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same according to their respective operator==.
  • +
  • Integer and floating-point numbers are automatically converted before comparison. Note that two NaN values are always treated as unequal.
  • +
  • Two JSON null values are equal.
  • +
+
Note
Floating-point inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default. To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance
template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>
+
inline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept
+
{
+
return std::abs(a - b) <= epsilon;
+
}
+
Or you can self-defined operator equal function like this:
bool my_equal(const_reference lhs, const_reference rhs) {
+
const auto lhs_type lhs.type();
+
const auto rhs_type rhs.type();
+
if (lhs_type == rhs_type) {
+
switch(lhs_type)
+
// self_defined case
+ +
return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();
+
// other cases remain the same with the original
+
...
+
}
+
...
+
}
+
+
+NaN values never compare equal to themselves or to other NaN values.
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are equal
+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@complexity Linear.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__equal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator== [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator== (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: equal

+

comparison: equal Compares two JSON values for equality according to the following rules:

    +
  • Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same according to their respective operator==.
  • +
  • Integer and floating-point numbers are automatically converted before comparison. Note that two NaN values are always treated as unequal.
  • +
  • Two JSON null values are equal.
  • +
+
Note
Floating-point inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default. To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance
template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>
+
inline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept
+
{
+
return std::abs(a - b) <= epsilon;
+
}
+
Or you can self-defined operator equal function like this:
bool my_equal(const_reference lhs, const_reference rhs) {
+
const auto lhs_type lhs.type();
+
const auto rhs_type rhs.type();
+
if (lhs_type == rhs_type) {
+
switch(lhs_type)
+
// self_defined case
+ +
return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();
+
// other cases remain the same with the original
+
...
+
}
+
...
+
}
+
+
+NaN values never compare equal to themselves or to other NaN values.
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are equal
+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@complexity Linear.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__equal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator!= [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator!= (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: not equal

+

Compares two JSON values for inequality by calculating not (lhs == rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are not equal
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__notequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator!= [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator!= (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: not equal

+

comparison: not equal Compares two JSON values for inequality by calculating not (lhs == rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are not equal
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__notequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator!= [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator!= (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: not equal

+

comparison: not equal Compares two JSON values for inequality by calculating not (lhs == rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether the values lhs and rhs are not equal
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__notequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator< [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator< (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: less than

+

Compares whether one JSON value lhs is less than another JSON value rhs according to the following rules:

    +
  • If lhs and rhs have the same type, the values are compared using the default < operator.
  • +
  • Integer and floating-point numbers are automatically converted before comparison
  • +
  • In case lhs and rhs have different types, the values are ignored and the order of the types is considered, see operator<(const value_t, const value_t).
  • +
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__less}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator< [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator< (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: less than

+

comparison: less than Compares whether one JSON value lhs is less than another JSON value rhs according to the following rules:

    +
  • If lhs and rhs have the same type, the values are compared using the default < operator.
  • +
  • Integer and floating-point numbers are automatically converted before comparison
  • +
  • In case lhs and rhs have different types, the values are ignored and the order of the types is considered, see operator<(const value_t, const value_t).
  • +
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__less}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator< [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator< (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: less than

+

comparison: less than Compares whether one JSON value lhs is less than another JSON value rhs according to the following rules:

    +
  • If lhs and rhs have the same type, the values are compared using the default < operator.
  • +
  • Integer and floating-point numbers are automatically converted before comparison
  • +
  • In case lhs and rhs have different types, the values are ignored and the order of the types is considered, see operator<(const value_t, const value_t).
  • +
+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__less}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator<= [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator<= (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: less than or equal

+

Compares whether one JSON value lhs is less than or equal to another JSON value by calculating not (rhs < lhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greater}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator<= [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator<= (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: less than or equal

+

comparison: less than or equal Compares whether one JSON value lhs is less than or equal to another JSON value by calculating not (rhs < lhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greater}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator<= [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator<= (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: less than or equal

+

comparison: less than or equal Compares whether one JSON value lhs is less than or equal to another JSON value by calculating not (rhs < lhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is less than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greater}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator> [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator> (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: greater than

+

Compares whether one JSON value lhs is greater than another JSON value by calculating not (lhs <= rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__lessequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator> [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator> (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: greater than

+

comparison: greater than Compares whether one JSON value lhs is greater than another JSON value by calculating not (lhs <= rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__lessequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator> [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator> (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: greater than

+

comparison: greater than Compares whether one JSON value lhs is greater than another JSON value by calculating not (lhs <= rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__lessequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator>= [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator>= (const_reference lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: greater than or equal

+

Compares whether one JSON value lhs is greater than or equal to another JSON value by calculating not (lhs < rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greaterequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator>= [2/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator>= (const_reference lhs,
const ScalarType rhs 
)
+
+friend
+
+ +

comparison: greater than or equal

+

comparison: greater than or equal Compares whether one JSON value lhs is greater than or equal to another JSON value by calculating not (lhs < rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greaterequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator>= [3/3]

+ +
+
+
+template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator>= (const ScalarType lhs,
const_reference rhs 
)
+
+friend
+
+ +

comparison: greater than or equal

+

comparison: greater than or equal Compares whether one JSON value lhs is greater than or equal to another JSON value by calculating not (lhs < rhs).

+
Parameters
+ + + +
[in]lhsfirst JSON value to consider
[in]rhssecond JSON value to consider
+
+
+
Returns
whether lhs is greater than or equal to rhs
+

@complexity Linear.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example demonstrates comparing several JSON types.,operator__greaterequal}

+
Since
version 1.0.0
+ +
+
+ +

◆ operator<< [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & o,
const basic_jsonj 
)
+
+friend
+
+ +

serialize to stream

+

Serialize the given JSON value j to the output stream o. The JSON value will be serialized using the dump member function.

+
    +
  • The indentation of the output can be controlled with the member variable width of the output stream o. For instance, using the manipulator std::setw(4) on o sets the indentation level to 4 and the serialization result is the same as calling dump(4).
  • +
  • The indentation character can be controlled with the member variable fill of the output stream o. For instance, the manipulator ‘std::setfill(’\t')` sets indentation to use a tab character rather than the default space character.
  • +
+
Parameters
+ + + +
[in,out]ostream to serialize to
[in]jJSON value to serialize
+
+
+
Returns
the stream o
+
Exceptions
+ + +
type_error.316if a string stored inside the JSON value is not UTF-8 encoded
+
+
+

@complexity Linear.

+

@liveexample{The example below shows the serialization with different parameters to width to adjust the indentation level.,operator_serialize}

+
Since
version 1.0.0; indentation character added in version 3.0.0
+ +
+
+ +

◆ operator>> [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator>> (const basic_jsonj,
std::ostream & o 
)
+
+friend
+
+ +

serialize to stream

+
Deprecated:
This stream operator is deprecated and will be removed in future 4.0.0 of the library. Please use operator<<(std::ostream&, const basic_json&) instead; that is, replace calls like j >> o; with o << j;.
+
Since
version 1.0.0; deprecated since version 3.0.0
+ +
+
+ +

◆ operator<< [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::istream& operator<< (basic_jsonj,
std::istream & i 
)
+
+friend
+
+ +

deserialize from stream

+
Deprecated:
This stream operator is deprecated and will be removed in version 4.0.0 of the library. Please use operator>>(std::istream&, basic_json&) instead; that is, replace calls like j << i; with i >> j;.
+
Since
version 1.0.0; deprecated since version 3.0.0
+ +
+
+ +

◆ operator>> [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::istream& operator>> (std::istream & i,
basic_jsonj 
)
+
+friend
+
+ +

deserialize from stream

+

Deserializes an input stream to a JSON value.

+
Parameters
+ + + +
[in,out]iinput stream to read a serialized JSON value from
[in,out]jJSON value to write the deserialized input to
+
+
+
Exceptions
+ + + + +
parse_error.101in case of an unexpected token
parse_error.102if to_unicode fails or surrogate error
parse_error.103if to_unicode fails
+
+
+

@complexity Linear in the length of the input. The parser is a predictive LL(1) parser.

+
Note
A UTF-8 byte order mark is silently ignored.
+

@liveexample{The example below shows how a JSON value is constructed by reading a serialization from a stream.,operator_deserialize}

+
See also
parse(std::istream&, const parser_callback_t) for a variant with a parser callback function to filter values while parsing
+
Since
version 1.0.0
+ +
+
+
+
+
basic_json(const value_t v)
create an empty value with a given type
Definition: json.hpp:17830
+
constexpr value_t type() const noexcept
return the type of the JSON value (explicit)
Definition: json.hpp:18812
+
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json diff(const basic_json &source, const basic_json &target, const std::string &path="")
creates a diff as a JSON patch
Definition: json.hpp:24958
+
@ number_float
number value (floating-point)
+
detail::out_of_range out_of_range
exception indicating access out of the defined range
Definition: json.hpp:16747
+
reference at(size_type idx)
access specified array element with bounds checking
Definition: json.hpp:19793
+
static iteration_proxy< iterator > iterator_wrapper(reference ref) noexcept
wrapper to access iterator member functions in range-based for
Definition: json.hpp:21274
+
const value_type & const_reference
the type of an element const reference
Definition: json.hpp:16769
+
@ key
the parser read a key of a value in an object
+ + + + diff --git a/classnlohmann_1_1basic__json.js b/classnlohmann_1_1basic__json.js new file mode 100644 index 0000000..59e68c4 --- /dev/null +++ b/classnlohmann_1_1basic__json.js @@ -0,0 +1,201 @@ +var classnlohmann_1_1basic__json = +[ + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html", "unionnlohmann_1_1basic__json_1_1json__value" ], + [ "basic_json_t", "classnlohmann_1_1basic__json.html#ae76659f8c2fbeab628a6c618e0817dee", null ], + [ "json_pointer", "classnlohmann_1_1basic__json.html#a352187a5ebf3cde865be1b833c18f208", null ], + [ "error_handler_t", "classnlohmann_1_1basic__json.html#a05b1719e15d24c47f4fce69888967d1e", null ], + [ "cbor_tag_handler_t", "classnlohmann_1_1basic__json.html#a229d672056243afb8f97ccf1b9df6ff7", null ], + [ "initializer_list_t", "classnlohmann_1_1basic__json.html#ae8b2251872b6a3a9b04147d2ffa5a839", null ], + [ "json_sax_t", "classnlohmann_1_1basic__json.html#af229d341abc5e2525a8ca4dc247533e1", null ], + [ "exception", "classnlohmann_1_1basic__json.html#ac00185487a16455dfdd53884f678040d", null ], + [ "parse_error", "classnlohmann_1_1basic__json.html#a3b1a24eaf07f81ee9cbf01e29cf8fb59", null ], + [ "invalid_iterator", "classnlohmann_1_1basic__json.html#a5e6b5db267db5a283e770296f9e410a0", null ], + [ "type_error", "classnlohmann_1_1basic__json.html#a79473de577bb3f28ef0aa6e9f1571b52", null ], + [ "out_of_range", "classnlohmann_1_1basic__json.html#a2e8fc803a09152f3174470ea2375b383", null ], + [ "other_error", "classnlohmann_1_1basic__json.html#a48d5c5750a7f3164653bd8d3e1e8c893", null ], + [ "value_type", "classnlohmann_1_1basic__json.html#a3913219f58349e9be2cb8cc6ddfb3abf", null ], + [ "reference", "classnlohmann_1_1basic__json.html#af11372ea846fedea8b2098dba7323831", null ], + [ "const_reference", "classnlohmann_1_1basic__json.html#ae83ab5539e404c901ab216aafc9dc6d9", null ], + [ "difference_type", "classnlohmann_1_1basic__json.html#a9b7596a400a85e2dd7ab22f62df8a340", null ], + [ "size_type", "classnlohmann_1_1basic__json.html#a9eaf1dcc25d6e7bd204f72877cef254b", null ], + [ "allocator_type", "classnlohmann_1_1basic__json.html#a69388a77648e83007af1295aaf350c0f", null ], + [ "pointer", "classnlohmann_1_1basic__json.html#a4ac83a20750a2bfacbf9d30f3e51c3bb", null ], + [ "const_pointer", "classnlohmann_1_1basic__json.html#a2c77adc1436dd4c62960d2679e4befee", null ], + [ "iterator", "classnlohmann_1_1basic__json.html#aa3ab6c99db6584c47624c29037f9f14d", null ], + [ "const_iterator", "classnlohmann_1_1basic__json.html#a7a09a580613f00c73015c19e5e7c44ba", null ], + [ "reverse_iterator", "classnlohmann_1_1basic__json.html#a0d2df32b8689b776dd3b0865f1362f40", null ], + [ "const_reverse_iterator", "classnlohmann_1_1basic__json.html#a59564ce7bf7dad8be7d4d8184be05d91", null ], + [ "object_t", "classnlohmann_1_1basic__json.html#a949272bf6af5eb8eab9675505422f5b3", null ], + [ "array_t", "classnlohmann_1_1basic__json.html#a69524b1f8f42c0a81b86cee3fc54e034", null ], + [ "string_t", "classnlohmann_1_1basic__json.html#a561057a2cc70397ad0ab890745d1d7c7", null ], + [ "boolean_t", "classnlohmann_1_1basic__json.html#a8cc04e22d7ef18efd2d34bc04eb6a1b2", null ], + [ "number_integer_t", "classnlohmann_1_1basic__json.html#ab227d71ad47b6ed6a3acae52dedbb49d", null ], + [ "number_unsigned_t", "classnlohmann_1_1basic__json.html#a440094de5ef4e119b2771b549b33da70", null ], + [ "number_float_t", "classnlohmann_1_1basic__json.html#ade1eb06e9fc3ff2ba1efd709b94b401d", null ], + [ "binary_t", "classnlohmann_1_1basic__json.html#acbf51bc13484009ed204bd78a498355e", null ], + [ "parse_event_t", "classnlohmann_1_1basic__json.html#a5d8fbc60f29db1c02fa8ce0828fcdc1d", null ], + [ "parser_callback_t", "classnlohmann_1_1basic__json.html#a87cd77e74fd386d93f26ad04bd01b6a5", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#ad886f4baa2efb7ac6b0ca70dc72f3d18", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#a9126e2860908bc6aa34da0063863070e", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#a6365d9b23fd9c554d9fc89121c4df4d0", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#ad0cf7682c00f137bec6a5a680a80dc6e", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#a6b3135f51d4e240e541af2f9d0b16ad9", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#aacff7cb1f9097fcb1f8f97d401220ac0", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#a3fb693444043639e08ff7be62410b137", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#af21eb13ca205fb51e267e6f7ee269229", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html#a758a9350d03d6eb90a9cb0bf4653d286", null ], + [ "~basic_json", "classnlohmann_1_1basic__json.html#a7d35fcb7c72f755a30ae433e58083eca", null ], + [ "assert_invariant", "classnlohmann_1_1basic__json.html#aebf93a806247231640c785fbc6985d10", null ], + [ "operator=", "classnlohmann_1_1basic__json.html#aa39eda8a41872fe4b022855e27fac90d", null ], + [ "dump", "classnlohmann_1_1basic__json.html#acfc564f36da667b7d9109879d34dc36c", null ], + [ "type", "classnlohmann_1_1basic__json.html#a530ad60b7fb590e0ee45b6803144cc00", null ], + [ "is_primitive", "classnlohmann_1_1basic__json.html#a422885c85f603a13c36f8d0ac5d9f278", null ], + [ "is_structured", "classnlohmann_1_1basic__json.html#a5a53e5a09d9123bfeed6f664b1334f8c", null ], + [ "is_null", "classnlohmann_1_1basic__json.html#afe9a6fe72337a174cfb117a2081d2cfc", null ], + [ "is_boolean", "classnlohmann_1_1basic__json.html#a0bd23e6f679145905a78020c07547559", null ], + [ "is_number", "classnlohmann_1_1basic__json.html#a5d5f20be10c6f6d263557def2ac504a3", null ], + [ "is_number_integer", "classnlohmann_1_1basic__json.html#a145005bad4fcab4f8620efec8de019ad", null ], + [ "is_number_unsigned", "classnlohmann_1_1basic__json.html#ac45bc02fd5f4f136f522844222012adc", null ], + [ "is_number_float", "classnlohmann_1_1basic__json.html#a926df0038ca14568f88a92d0caeba044", null ], + [ "is_object", "classnlohmann_1_1basic__json.html#ae3300a95d3bb4a55cb0e04b9f125e42f", null ], + [ "is_array", "classnlohmann_1_1basic__json.html#a1859e0c783a24df797b758e3fc21b966", null ], + [ "is_string", "classnlohmann_1_1basic__json.html#ae958b0bc067c82850145299711d8bcd5", null ], + [ "is_binary", "classnlohmann_1_1basic__json.html#af0623f174dc806b5c17b87a485febf68", null ], + [ "is_discarded", "classnlohmann_1_1basic__json.html#a4fce66d66c424052b192ba45e08a661d", null ], + [ "operator value_t", "classnlohmann_1_1basic__json.html#a568197da17e5f7f9889607a2524497c6", null ], + [ "get_impl", "classnlohmann_1_1basic__json.html#a11bc366554be56ed9832dc25e009acaf", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a364997745e8a4db417d1c1bfd252ee61", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#afcaf35277a772216232f82c2ecbe51df", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a5560b65c43ebfa52fd81363f628f0fd6", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#ab882c22809696716a55d6572527709fa", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a00601649a4242a528f60b9e0c7b89bd6", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a759e15ae107daa9ca50916aeb5070a18", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#aa9fc99ec3a40c1e1ee086d797e2f4eec", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a7e5c49156b170062c176e520fb6e0002", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a0c6ae57643e00da7bf6e4d1c29be6db7", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#ae48280c854cad4ff1b466310511d4815", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a835557fd75998eb3a83254d051498b30", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a4800ba3349c81c61206add73e2b2e434", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a2fabcdab83c0a3de7fb7d753d75ce2bb", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a135cc1f0f25c4ad2ceed7132fc83d8ce", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#a1395936ee3b5bf12a44b583ce4c42c9c", null ], + [ "get_impl_ptr", "classnlohmann_1_1basic__json.html#ab71294705ef1df01447c423aac909cc7", null ], + [ "get", "classnlohmann_1_1basic__json.html#adc6408fbeaf9545882dc62bc20db7d42", null ], + [ "get", "classnlohmann_1_1basic__json.html#ad6d521a14fe494fb08bea79cfaaa9b46", null ], + [ "get", "classnlohmann_1_1basic__json.html#a0e3fba99f98f8b7c54b7e657f02162c9", null ], + [ "get", "classnlohmann_1_1basic__json.html#a0ac973fb8b3bf1fb60d1b8df880060c3", null ], + [ "get_to", "classnlohmann_1_1basic__json.html#a24f07b19d83414f342b204da5a400363", null ], + [ "get_ptr", "classnlohmann_1_1basic__json.html#a9e639075f5b3f1733fcb5f04aea3da95", null ], + [ "get_ptr", "classnlohmann_1_1basic__json.html#abad0f48fa4535a8820e90509b733f16b", null ], + [ "get", "classnlohmann_1_1basic__json.html#a19e7e8e1811dcbfb35d1855a24abd8aa", null ], + [ "get", "classnlohmann_1_1basic__json.html#a37a6d7eaf9d736a890adb6e9f1444fde", null ], + [ "get_ref", "classnlohmann_1_1basic__json.html#a838359d25d318852c8204b999e5f375d", null ], + [ "get_ref", "classnlohmann_1_1basic__json.html#a71ff2578d0655d983f2934a907b0f960", null ], + [ "operator ValueType", "classnlohmann_1_1basic__json.html#a67625415961aa7a1289d3d08cc404284", null ], + [ "get_binary", "classnlohmann_1_1basic__json.html#a76403180c973eb50c39948ed7b931d7d", null ], + [ "get_binary", "classnlohmann_1_1basic__json.html#a016b2a512369a464f64e14b72885fd76", null ], + [ "at", "classnlohmann_1_1basic__json.html#a5805a2f5a4f94bdff25423e7ba833ad2", null ], + [ "at", "classnlohmann_1_1basic__json.html#a2204de84d420ad31b29488641815f90e", null ], + [ "at", "classnlohmann_1_1basic__json.html#a157868dfcf060bf67fa423bafbf27b57", null ], + [ "at", "classnlohmann_1_1basic__json.html#a5ca85574718e7fde0a3113775c3023c8", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#a05c86efa156004b090258c1469eab3fd", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#a9fd9864614513a7191df0bada4880228", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#ad983106f7d7fd6a03cf609a9641976f4", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#a7630fcfd1eda4d7de237af90466bffc6", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#a4ef3a5ec711a8e4b32407a261baee850", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#aadfe340990ea3f4039f8d3c100f254e6", null ], + [ "value", "classnlohmann_1_1basic__json.html#ab29a59d20767180d6d2fe4f5054dd245", null ], + [ "value", "classnlohmann_1_1basic__json.html#a7a378b9282dd1f7eb9bfffea6d177bbe", null ], + [ "value", "classnlohmann_1_1basic__json.html#a23d4ac15d8df59f36967a46a49dd896d", null ], + [ "value", "classnlohmann_1_1basic__json.html#a5dfdaa906f429f5f8b6e14db46e94852", null ], + [ "front", "classnlohmann_1_1basic__json.html#ad1702349b3aeca0e518921336faa570c", null ], + [ "front", "classnlohmann_1_1basic__json.html#a135d1239f3189866baaede36ec0701c8", null ], + [ "back", "classnlohmann_1_1basic__json.html#ab87589ef6b14a6e6881109e04d414830", null ], + [ "back", "classnlohmann_1_1basic__json.html#a3b1077520ab6c8682a9039fcc2a50b5d", null ], + [ "erase", "classnlohmann_1_1basic__json.html#a0d0f5fb6f22126f7e3803dd7cdf7030f", null ], + [ "erase", "classnlohmann_1_1basic__json.html#a24c397c38ce6984594a87c64b2378dc9", null ], + [ "erase", "classnlohmann_1_1basic__json.html#a022404d92eb877a7ad5bfce198ef067a", null ], + [ "erase", "classnlohmann_1_1basic__json.html#a49a7ac46583c77094f96a7717597ff5f", null ], + [ "find", "classnlohmann_1_1basic__json.html#af4167275baa0b2da76cdc89b1117c300", null ], + [ "find", "classnlohmann_1_1basic__json.html#a581684a08bf3fa341f9fcec34d3885a3", null ], + [ "count", "classnlohmann_1_1basic__json.html#a369cf24de07945494df32e8b61e47917", null ], + [ "contains", "classnlohmann_1_1basic__json.html#a29333078b6e6cb76f2b5d12590bbf766", null ], + [ "contains", "classnlohmann_1_1basic__json.html#af700bb8239390cf462126f0c96606fae", null ], + [ "begin", "classnlohmann_1_1basic__json.html#a7eae0427fb22e147d9c2ed1d532ed2aa", null ], + [ "begin", "classnlohmann_1_1basic__json.html#aeb76c192095f808283822c8401d2a3a1", null ], + [ "cbegin", "classnlohmann_1_1basic__json.html#ae1e7bbc736b7e9d1155f9ee6c95b2090", null ], + [ "end", "classnlohmann_1_1basic__json.html#a4db895fabb72f717b2c641a5c338d5a8", null ], + [ "end", "classnlohmann_1_1basic__json.html#a94522e3b348ef50d9c212121b3478ee1", null ], + [ "cend", "classnlohmann_1_1basic__json.html#aab2588e4f8767b792656e5ebcf922a9f", null ], + [ "rbegin", "classnlohmann_1_1basic__json.html#a32674498f617591fff4002ad0934a4f6", null ], + [ "rbegin", "classnlohmann_1_1basic__json.html#a8d792070799098e6172e82a3865875ee", null ], + [ "rend", "classnlohmann_1_1basic__json.html#a27d668c5b974f4b3bded760f5553b5c6", null ], + [ "rend", "classnlohmann_1_1basic__json.html#a6adf45af5f550ae31fe3bf0759b9af14", null ], + [ "crbegin", "classnlohmann_1_1basic__json.html#abe4ea2bbb97eba3baad6c4286366e7c5", null ], + [ "crend", "classnlohmann_1_1basic__json.html#ae54982c31d6c21e140980ce502425cf6", null ], + [ "items", "classnlohmann_1_1basic__json.html#a5961446010dfc494e0c247b4e9026977", null ], + [ "items", "classnlohmann_1_1basic__json.html#a79bac81ac682a6327fbd4e792190dfc6", null ], + [ "empty", "classnlohmann_1_1basic__json.html#a54599e2a109faaebfb50df824567e5ae", null ], + [ "size", "classnlohmann_1_1basic__json.html#aaa2519eb5a174547b8a2f6019def9b65", null ], + [ "max_size", "classnlohmann_1_1basic__json.html#a502e4020141ed42d55e5d1fd88b3e80f", null ], + [ "clear", "classnlohmann_1_1basic__json.html#a680c6cbaca83984fd7a5dd7496f86594", null ], + [ "push_back", "classnlohmann_1_1basic__json.html#a887cd40d16a12596c24cd42c66107ac6", null ], + [ "operator+=", "classnlohmann_1_1basic__json.html#afe3c79845dc1dd2243724558859d7e4b", null ], + [ "push_back", "classnlohmann_1_1basic__json.html#abf9a7dcd2b7a3080ccfacf5d0ebf12e5", null ], + [ "operator+=", "classnlohmann_1_1basic__json.html#a4ec964f3346fa981453933901ca39dd1", null ], + [ "push_back", "classnlohmann_1_1basic__json.html#affac3bab5efcb26cdcd0942d24ad0ab5", null ], + [ "operator+=", "classnlohmann_1_1basic__json.html#acbfa964cfa7c74f92d48a65eae744cfd", null ], + [ "push_back", "classnlohmann_1_1basic__json.html#a4f811ef36976a82a8e29cb1ae7c40152", null ], + [ "operator+=", "classnlohmann_1_1basic__json.html#ad7ca83d8fdd49dae585f9980af5f7a8c", null ], + [ "emplace_back", "classnlohmann_1_1basic__json.html#a58837bac1c40038dcb07f437a02735da", null ], + [ "emplace", "classnlohmann_1_1basic__json.html#ae3866ccade11e7b73902169714363f21", null ], + [ "insert_iterator", "classnlohmann_1_1basic__json.html#ab80c4bdc11b40246f668008bae80df25", null ], + [ "insert", "classnlohmann_1_1basic__json.html#ac6be8bd68e9dffd793846e0f0b239d62", null ], + [ "insert", "classnlohmann_1_1basic__json.html#a3b86713def43fb79d40cb344b826033c", null ], + [ "insert", "classnlohmann_1_1basic__json.html#a58e65af3dd9223d8593c6ca1a8477c3f", null ], + [ "insert", "classnlohmann_1_1basic__json.html#a939390bb7d48b11c64413ec79c7104fa", null ], + [ "insert", "classnlohmann_1_1basic__json.html#adaae3e55f4349e53d1526a6da464d34f", null ], + [ "insert", "classnlohmann_1_1basic__json.html#aab2bc544912cb3954b38ee76772c16d7", null ], + [ "update", "classnlohmann_1_1basic__json.html#a6c02637be3d8bd730a14082cc05f7a85", null ], + [ "update", "classnlohmann_1_1basic__json.html#a0dbd5c8bdff3d633ff6d1d373297b777", null ], + [ "swap", "classnlohmann_1_1basic__json.html#ade6945272c7b703520f435ad580d3c7f", null ], + [ "swap", "classnlohmann_1_1basic__json.html#adbb8131d4eaea460e8329bc0dfff1f6e", null ], + [ "swap", "classnlohmann_1_1basic__json.html#a02f73d65a38b3f0450c992e8c337d522", null ], + [ "swap", "classnlohmann_1_1basic__json.html#a1c597d3cfa8aeec2ab4492306201851e", null ], + [ "swap", "classnlohmann_1_1basic__json.html#abe5adbae0da85a23ad7e812bdb85672f", null ], + [ "swap", "classnlohmann_1_1basic__json.html#a02f1c7f2f2684292590294dccbbd7621", null ], + [ "type_name", "classnlohmann_1_1basic__json.html#a0fb9647ea72df0a3099cf6dd7e3f53e9", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#a0d26844b03de9067a47752b138e28236", null ], + [ "operator[]", "classnlohmann_1_1basic__json.html#ac240ab334bd660975e601b0809c3f1bc", null ], + [ "at", "classnlohmann_1_1basic__json.html#ac07f0518ba7a3af394d37d86753a9845", null ], + [ "at", "classnlohmann_1_1basic__json.html#a92a2e5bde3f9a1a548b367114e4794f1", null ], + [ "flatten", "classnlohmann_1_1basic__json.html#ae91348b027208339c94dbbc6fd769929", null ], + [ "unflatten", "classnlohmann_1_1basic__json.html#ac63d16a141ee5c2046410d2d0ba4cec8", null ], + [ "patch", "classnlohmann_1_1basic__json.html#a71a1bdafcb0f849479622e9acc8f825b", null ], + [ "merge_patch", "classnlohmann_1_1basic__json.html#ab68414151f2f3347a71c7a9984f1d72d", null ], + [ "swap", "classnlohmann_1_1basic__json.html#aee0ae36cbfb0336832ebc0374c3c7679", null ], + [ "operator==", "classnlohmann_1_1basic__json.html#a122640e7e2db1814fc7bbb3c122ec76e", null ], + [ "operator==", "classnlohmann_1_1basic__json.html#aba21440ea1aff44f718285ed7d6d20d9", null ], + [ "operator==", "classnlohmann_1_1basic__json.html#aef302e3ae215e46e5035d0e4fdf47235", null ], + [ "operator!=", "classnlohmann_1_1basic__json.html#a6e2e21da48f5d9471716cd868a068327", null ], + [ "operator!=", "classnlohmann_1_1basic__json.html#afefc38fc08bdb7a9a7474b5ab4a1140f", null ], + [ "operator!=", "classnlohmann_1_1basic__json.html#ab0e886db6e9fa91ff9fd853333fed05b", null ], + [ "operator<", "classnlohmann_1_1basic__json.html#aacd442b66140c764c594ac8ad7dfd5b3", null ], + [ "operator<", "classnlohmann_1_1basic__json.html#a7999ee3a69a4979d92e98ab1e88c8759", null ], + [ "operator<", "classnlohmann_1_1basic__json.html#abed3e9b4ab75f5bcbd3cd20f5af5cdab", null ], + [ "operator<=", "classnlohmann_1_1basic__json.html#a5c8bb5200f5eac10d31e26be46e5b1ac", null ], + [ "operator<=", "classnlohmann_1_1basic__json.html#a7e368211047f725f333696aefdf39ffd", null ], + [ "operator<=", "classnlohmann_1_1basic__json.html#ad73f88f70fe5acfa521750a8cd710026", null ], + [ "operator>", "classnlohmann_1_1basic__json.html#a87db51b6b936fb2ea293cdbc8702dcb8", null ], + [ "operator>", "classnlohmann_1_1basic__json.html#a412895af9a582869a4d369a64fb1b6d6", null ], + [ "operator>", "classnlohmann_1_1basic__json.html#a124c319566198d9f092c5bebea46ce77", null ], + [ "operator>=", "classnlohmann_1_1basic__json.html#a74a943800c7f103d0990d7eef82c6453", null ], + [ "operator>=", "classnlohmann_1_1basic__json.html#a68e3a92b3d9be1faa05c92d096299189", null ], + [ "operator>=", "classnlohmann_1_1basic__json.html#a5ee0e3e8afc7cbd932d6ed66418fa80a", null ], + [ "operator<<", "classnlohmann_1_1basic__json.html#a5e34c5435e557d0bf666bd7311211405", null ], + [ "operator>>", "classnlohmann_1_1basic__json.html#a34d6a60dd99e9f33b8273a1c8db5669b", null ], + [ "operator<<", "classnlohmann_1_1basic__json.html#a60ca396028b8d9714c6e10efbf475af6", null ], + [ "operator>>", "classnlohmann_1_1basic__json.html#aaf363408931d76472ded14017e59c9e8", null ], + [ "m_type", "classnlohmann_1_1basic__json.html#a5f22d74455ea3e1bb6a8a2c31e6be6be", null ], + [ "m_value", "classnlohmann_1_1basic__json.html#a19622cd7064559888959fe0ef3882bea", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1byte__container__with__subtype-members.html b/classnlohmann_1_1byte__container__with__subtype-members.html new file mode 100644 index 0000000..72a0d79 --- /dev/null +++ b/classnlohmann_1_1byte__container__with__subtype-members.html @@ -0,0 +1,76 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::byte_container_with_subtype< BinaryType > Member List
+
+ +
+ + + + diff --git a/classnlohmann_1_1byte__container__with__subtype.html b/classnlohmann_1_1byte__container__with__subtype.html new file mode 100644 index 0000000..c1fe0c7 --- /dev/null +++ b/classnlohmann_1_1byte__container__with__subtype.html @@ -0,0 +1,271 @@ + + + + + + + +Renderd7-nightly: nlohmann::byte_container_with_subtype< BinaryType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::byte_container_with_subtype< BinaryType > Class Template Reference
+
+
+ +

an internal type for a backed binary type + More...

+ +

#include <json.hpp>

+ +

Inherits BinaryType.

+ + + + + +

+Public Types

+using container_type = BinaryType
 the type of the underlying container
 
+ + + + + + + + + + + + + +

+Public Member Functions

void set_subtype (std::uint8_t subtype) noexcept
 sets the binary subtype More...
 
constexpr std::uint8_t subtype () const noexcept
 return the binary subtype More...
 
constexpr bool has_subtype () const noexcept
 return whether the value has a subtype More...
 
void clear_subtype () noexcept
 clears the binary subtype More...
 
+

Detailed Description

+

template<typename BinaryType>
+class nlohmann::byte_container_with_subtype< BinaryType >

+ +

an internal type for a backed binary type

+

This type extends the template parameter BinaryType provided to basic_json with a subtype used by BSON and MessagePack. This type exists so that the user does not have to specify a type themselves with a specific naming scheme in order to override the binary type.

+
Template Parameters
+ + +
BinaryTypecontainer to store bytes (std::vector<std::uint8_t> by default)
+
+
+
Since
version 3.8.0
+

Member Function Documentation

+ +

◆ set_subtype()

+ +
+
+
+template<typename BinaryType >
+ + + + + +
+ + + + + + + + +
void nlohmann::byte_container_with_subtype< BinaryType >::set_subtype (std::uint8_t subtype)
+
+inlinenoexcept
+
+ +

sets the binary subtype

+

Sets the binary subtype of the value, also flags a binary JSON value as having a subtype, which has implications for serialization.

+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+
See also
subtype() – return the binary subtype
+
+clear_subtype() – clears the binary subtype
+
+has_subtype() – returns whether or not the binary value has a subtype
+
Since
version 3.8.0
+ +
+
+ +

◆ subtype()

+ +
+
+
+template<typename BinaryType >
+ + + + + +
+ + + + + + + +
constexpr std::uint8_t nlohmann::byte_container_with_subtype< BinaryType >::subtype () const
+
+inlineconstexprnoexcept
+
+ +

return the binary subtype

+

Returns the numerical subtype of the value if it has a subtype. If it does not have a subtype, this function will return size_t(-1) as a sentinel value.

+
Returns
the numerical subtype of the binary value
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+
See also
set_subtype() – sets the binary subtype
+
+clear_subtype() – clears the binary subtype
+
+has_subtype() – returns whether or not the binary value has a subtype
+
Since
version 3.8.0
+ +
+
+ +

◆ has_subtype()

+ +
+
+
+template<typename BinaryType >
+ + + + + +
+ + + + + + + +
constexpr bool nlohmann::byte_container_with_subtype< BinaryType >::has_subtype () const
+
+inlineconstexprnoexcept
+
+ +

return whether the value has a subtype

+
Returns
whether the value has a subtype
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+
See also
subtype() – return the binary subtype
+
+set_subtype() – sets the binary subtype
+
+clear_subtype() – clears the binary subtype
+
Since
version 3.8.0
+ +
+
+ +

◆ clear_subtype()

+ +
+
+
+template<typename BinaryType >
+ + + + + +
+ + + + + + + +
void nlohmann::byte_container_with_subtype< BinaryType >::clear_subtype ()
+
+inlinenoexcept
+
+ +

clears the binary subtype

+

Clears the binary subtype and flags the value as not having a subtype, which has implications for serialization; for instance MessagePack will prefer the bin family over the ext family.

+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this member function never throws exceptions.

+
See also
subtype() – return the binary subtype
+
+set_subtype() – sets the binary subtype
+
+has_subtype() – returns whether or not the binary value has a subtype
+
Since
version 3.8.0
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1byte__container__with__subtype.js b/classnlohmann_1_1byte__container__with__subtype.js new file mode 100644 index 0000000..f594cfe --- /dev/null +++ b/classnlohmann_1_1byte__container__with__subtype.js @@ -0,0 +1,8 @@ +var classnlohmann_1_1byte__container__with__subtype = +[ + [ "container_type", "classnlohmann_1_1byte__container__with__subtype.html#a4d27e8633c5a5e3b49dd4ccb06515713", null ], + [ "set_subtype", "classnlohmann_1_1byte__container__with__subtype.html#aa1653b01b420607b359a3e8815b516c2", null ], + [ "subtype", "classnlohmann_1_1byte__container__with__subtype.html#ac3ca9d09e55342f9588404e1dc2222f0", null ], + [ "has_subtype", "classnlohmann_1_1byte__container__with__subtype.html#a9fc42fb07003bf7048c2f1fc79478e02", null ], + [ "clear_subtype", "classnlohmann_1_1byte__container__with__subtype.html#a7b122b28ff2b8680557ca44ac9748e49", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1binary__reader-members.html b/classnlohmann_1_1detail_1_1binary__reader-members.html new file mode 100644 index 0000000..4ae3c3b --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__reader-members.html @@ -0,0 +1,109 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
binary_reader(InputAdapterType &&adapter)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineexplicit
chars_readnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >private
currentnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >private
exception_message(const input_format_t format, const std::string &detail, const std::string &context) constnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_binary(const input_format_t format, const NumberType len, binary_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_bson_binary(const NumberType len, binary_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_bson_cstr(string_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_bson_string(const NumberType len, string_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_cbor_array(const std::size_t len, const cbor_tag_handler_t tag_handler)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_cbor_binary(binary_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_cbor_object(const std::size_t len, const cbor_tag_handler_t tag_handler)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_cbor_string(string_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ignore_noop()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_msgpack_array(const std::size_t len)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_msgpack_binary(binary_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_msgpack_object(const std::size_t len)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_msgpack_string(string_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_string(const input_format_t format, const NumberType len, string_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_token_string() constnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_array()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_object()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_size_type(std::pair< std::size_t, char_int_type > &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_size_value(std::size_t &result)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_string(string_t &result, const bool get_char=true)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
get_ubjson_value(const char_int_type prefix)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
ianlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >private
is_little_endiannlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >private
parse_bson_array()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_bson_element_internal(const char_int_type element_type, const std::size_t element_type_parse_position)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_bson_element_list(const bool is_array)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_bson_internal()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_cbor_internal(const bool get_char, const cbor_tag_handler_t tag_handler)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_msgpack_internal()nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
parse_ubjson_internal(const bool get_char=true)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
saxnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >private
sax_parse(const input_format_t format, json_sax_t *sax_, const bool strict=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inline
unexpect_eof(const input_format_t format, const char *context) constnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >inlineprivate
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1binary__reader.html b/classnlohmann_1_1detail_1_1binary__reader.html new file mode 100644 index 0000000..3408f5a --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__reader.html @@ -0,0 +1,1547 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX > Class Template Reference
+
+
+ +

deserialization of CBOR, MessagePack, and UBJSON values + More...

+ +

#include <json.hpp>

+ + + + + + + +

+Public Member Functions

 binary_reader (InputAdapterType &&adapter)
 create a binary reader More...
 
bool sax_parse (const input_format_t format, json_sax_t *sax_, const bool strict=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

bool parse_bson_internal ()
 Reads in a BSON-object and passes it to the SAX-parser. More...
 
bool get_bson_cstr (string_t &result)
 Parses a C-style string from the BSON input. More...
 
template<typename NumberType >
bool get_bson_string (const NumberType len, string_t &result)
 Parses a zero-terminated string of length len from the BSON input. More...
 
template<typename NumberType >
bool get_bson_binary (const NumberType len, binary_t &result)
 Parses a byte array input of length len from the BSON input. More...
 
bool parse_bson_element_internal (const char_int_type element_type, const std::size_t element_type_parse_position)
 Read a BSON document element of the given element_type. More...
 
bool parse_bson_element_list (const bool is_array)
 Read a BSON element list (as specified in the BSON-spec) More...
 
bool parse_bson_array ()
 Reads an array from the BSON input and passes it to the SAX-parser. More...
 
bool parse_cbor_internal (const bool get_char, const cbor_tag_handler_t tag_handler)
 
bool get_cbor_string (string_t &result)
 reads a CBOR string More...
 
bool get_cbor_binary (binary_t &result)
 reads a CBOR byte array More...
 
bool get_cbor_array (const std::size_t len, const cbor_tag_handler_t tag_handler)
 
bool get_cbor_object (const std::size_t len, const cbor_tag_handler_t tag_handler)
 
bool parse_msgpack_internal ()
 
bool get_msgpack_string (string_t &result)
 reads a MessagePack string More...
 
bool get_msgpack_binary (binary_t &result)
 reads a MessagePack byte array More...
 
bool get_msgpack_array (const std::size_t len)
 
bool get_msgpack_object (const std::size_t len)
 
bool parse_ubjson_internal (const bool get_char=true)
 
bool get_ubjson_string (string_t &result, const bool get_char=true)
 reads a UBJSON string More...
 
bool get_ubjson_size_value (std::size_t &result)
 
bool get_ubjson_size_type (std::pair< std::size_t, char_int_type > &result)
 determine the type and size for a container More...
 
bool get_ubjson_value (const char_int_type prefix)
 
bool get_ubjson_array ()
 
bool get_ubjson_object ()
 
char_int_type get ()
 get next character from the input More...
 
char_int_type get_ignore_noop ()
 
template<typename NumberType >
bool get_string (const input_format_t format, const NumberType len, string_t &result)
 create a string by reading characters from the input More...
 
template<typename NumberType >
bool get_binary (const input_format_t format, const NumberType len, binary_t &result)
 create a byte array by reading bytes from the input More...
 
bool unexpect_eof (const input_format_t format, const char *context) const
 
std::string get_token_string () const
 
std::string exception_message (const input_format_t format, const std::string &detail, const std::string &context) const
 
+ + + + + + + + + + + + + + + + +

+Private Attributes

+InputAdapterType ia
 input adapter
 
+char_int_type current = std::char_traits<char_type>::eof()
 the current character
 
+std::size_t chars_read = 0
 the number of characters read
 
+const bool is_little_endian = little_endianess()
 whether we can assume little endianess
 
+json_sax_t * sax = nullptr
 the SAX parser
 
+

Detailed Description

+

template<typename BasicJsonType, typename InputAdapterType, typename SAX = json_sax_dom_parser<BasicJsonType>>
+class nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >

+ +

deserialization of CBOR, MessagePack, and UBJSON values

+

Constructor & Destructor Documentation

+ +

◆ binary_reader()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader (InputAdapterType && adapter)
+
+inlineexplicit
+
+ +

create a binary reader

+
Parameters
+ + +
[in]adapterinput adapter to read from
+
+
+ +
+
+

Member Function Documentation

+ +

◆ sax_parse()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::sax_parse (const input_format_t format,
json_sax_t * sax_,
const bool strict = true,
const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error 
)
+
+inline
+
+
Parameters
+ + + + + +
[in]formatthe binary format to parse
[in]sax_a SAX event processor
[in]strictwhether to expect the input to be consumed completed
[in]tag_handlerhow to treat CBOR tags
+
+
+
Returns
+ +
+
+ +

◆ parse_bson_internal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_internal ()
+
+inlineprivate
+
+ +

Reads in a BSON-object and passes it to the SAX-parser.

+
Returns
whether a valid BSON-value was passed to the SAX parser
+ +
+
+ +

◆ get_bson_cstr()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_cstr (string_t & result)
+
+inlineprivate
+
+ +

Parses a C-style string from the BSON input.

+
Parameters
+ + +
[in,out]resultA reference to the string variable where the read string is to be stored.
+
+
+
Returns
true if the \x00-byte indicating the end of the string was encountered before the EOF; false` indicates an unexpected EOF.
+ +
+
+ +

◆ get_bson_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+
+template<typename NumberType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_string (const NumberType len,
string_t & result 
)
+
+inlineprivate
+
+ +

Parses a zero-terminated string of length len from the BSON input.

+
Parameters
+ + + +
[in]lenThe length (including the zero-byte at the end) of the string to be read.
[in,out]resultA reference to the string variable where the read string is to be stored.
+
+
+
Template Parameters
+ + +
NumberTypeThe type of the length len
+
+
+
Precondition
len >= 1
+
Returns
true if the string was successfully parsed
+ +
+
+ +

◆ get_bson_binary()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+
+template<typename NumberType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_binary (const NumberType len,
binary_t & result 
)
+
+inlineprivate
+
+ +

Parses a byte array input of length len from the BSON input.

+
Parameters
+ + + +
[in]lenThe length of the byte array to be read.
[in,out]resultA reference to the binary variable where the read array is to be stored.
+
+
+
Template Parameters
+ + +
NumberTypeThe type of the length len
+
+
+
Precondition
len >= 0
+
Returns
true if the byte array was successfully parsed
+ +
+
+ +

◆ parse_bson_element_internal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_element_internal (const char_int_type element_type,
const std::size_t element_type_parse_position 
)
+
+inlineprivate
+
+ +

Read a BSON document element of the given element_type.

+
Parameters
+ + + +
[in]element_typeThe BSON element type, c.f. http://bsonspec.org/spec.html
[in]element_type_parse_positionThe position in the input stream, where the element_type was read.
+
+
+
Warning
Not all BSON element types are supported yet. An unsupported element_type will give rise to a parse_error.114: Unsupported BSON record type 0x...
+
Returns
whether a valid BSON-object/array was passed to the SAX parser
+ +
+
+ +

◆ parse_bson_element_list()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_element_list (const bool is_array)
+
+inlineprivate
+
+ +

Read a BSON element list (as specified in the BSON-spec)

+

The same binary layout is used for objects and arrays, hence it must be indicated with the argument is_array which one is expected (true --> array, false --> object).

+
Parameters
+ + +
[in]is_arrayDetermines if the element list being read is to be treated as an object (is_array == false), or as an array (is_array == true).
+
+
+
Returns
whether a valid BSON-object/array was passed to the SAX parser
+ +
+
+ +

◆ parse_bson_array()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_array ()
+
+inlineprivate
+
+ +

Reads an array from the BSON input and passes it to the SAX-parser.

+
Returns
whether a valid BSON-array was passed to the SAX parser
+ +
+
+ +

◆ parse_cbor_internal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_cbor_internal (const bool get_char,
const cbor_tag_handler_t tag_handler 
)
+
+inlineprivate
+
+
Parameters
+ + + +
[in]get_charwhether a new character should be retrieved from the input (true) or whether the last read character should be considered instead (false)
[in]tag_handlerhow CBOR tags should be treated
+
+
+
Returns
whether a valid CBOR value was passed to the SAX parser
+ +
+
+ +

◆ get_cbor_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_string (string_t & result)
+
+inlineprivate
+
+ +

reads a CBOR string

+

This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string. Additionally, CBOR's strings with indefinite lengths are supported.

+
Parameters
+ + +
[out]resultcreated string
+
+
+
Returns
whether string creation completed
+ +
+
+ +

◆ get_cbor_binary()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_binary (binary_t & result)
+
+inlineprivate
+
+ +

reads a CBOR byte array

+

This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into the byte array. Additionally, CBOR's byte arrays with indefinite lengths are supported.

+
Parameters
+ + +
[out]resultcreated byte array
+
+
+
Returns
whether byte array creation completed
+ +
+
+ +

◆ get_cbor_array()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_array (const std::size_t len,
const cbor_tag_handler_t tag_handler 
)
+
+inlineprivate
+
+
Parameters
+ + + +
[in]lenthe length of the array or std::size_t(-1) for an array of indefinite size
[in]tag_handlerhow CBOR tags should be treated
+
+
+
Returns
whether array creation completed
+ +
+
+ +

◆ get_cbor_object()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_object (const std::size_t len,
const cbor_tag_handler_t tag_handler 
)
+
+inlineprivate
+
+
Parameters
+ + + +
[in]lenthe length of the object or std::size_t(-1) for an object of indefinite size
[in]tag_handlerhow CBOR tags should be treated
+
+
+
Returns
whether object creation completed
+ +
+
+ +

◆ parse_msgpack_internal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_msgpack_internal ()
+
+inlineprivate
+
+
Returns
whether a valid MessagePack value was passed to the SAX parser
+ +
+
+ +

◆ get_msgpack_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_string (string_t & result)
+
+inlineprivate
+
+ +

reads a MessagePack string

+

This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string.

+
Parameters
+ + +
[out]resultcreated string
+
+
+
Returns
whether string creation completed
+ +
+
+ +

◆ get_msgpack_binary()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_binary (binary_t & result)
+
+inlineprivate
+
+ +

reads a MessagePack byte array

+

This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into a byte array.

+
Parameters
+ + +
[out]resultcreated byte array
+
+
+
Returns
whether byte array creation completed
+ +
+
+ +

◆ get_msgpack_array()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_array (const std::size_t len)
+
+inlineprivate
+
+
Parameters
+ + +
[in]lenthe length of the array
+
+
+
Returns
whether array creation completed
+ +
+
+ +

◆ get_msgpack_object()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_object (const std::size_t len)
+
+inlineprivate
+
+
Parameters
+ + +
[in]lenthe length of the object
+
+
+
Returns
whether object creation completed
+ +
+
+ +

◆ parse_ubjson_internal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_ubjson_internal (const bool get_char = true)
+
+inlineprivate
+
+
Parameters
+ + +
[in]get_charwhether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead
+
+
+
Returns
whether a valid UBJSON value was passed to the SAX parser
+ +
+
+ +

◆ get_ubjson_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_string (string_t & result,
const bool get_char = true 
)
+
+inlineprivate
+
+ +

reads a UBJSON string

+

This function is either called after reading the 'S' byte explicitly indicating a string, or in case of an object key where the 'S' byte can be left out.

+
Parameters
+ + + +
[out]resultcreated string
[in]get_charwhether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead
+
+
+
Returns
whether string creation completed
+ +
+
+ +

◆ get_ubjson_size_value()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_value (std::size_t & result)
+
+inlineprivate
+
+
Parameters
+ + +
[out]resultdetermined size
+
+
+
Returns
whether size determination completed
+ +
+
+ +

◆ get_ubjson_size_type()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_type (std::pair< std::size_t, char_int_type > & result)
+
+inlineprivate
+
+ +

determine the type and size for a container

+

In the optimized UBJSON format, a type and a size can be provided to allow for a more compact representation.

+
Parameters
+ + +
[out]resultpair of the size and the type
+
+
+
Returns
whether pair creation completed
+ +
+
+ +

◆ get_ubjson_value()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_value (const char_int_type prefix)
+
+inlineprivate
+
+
Parameters
+ + +
prefixthe previously read or set type prefix
+
+
+
Returns
whether value creation completed
+ +
+
+ +

◆ get_ubjson_array()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_array ()
+
+inlineprivate
+
+
Returns
whether array creation completed
+ +
+
+ +

◆ get_ubjson_object()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_object ()
+
+inlineprivate
+
+
Returns
whether object creation completed
+ +
+
+ +

◆ get()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
char_int_type nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get ()
+
+inlineprivate
+
+ +

get next character from the input

+

This function provides the interface to the used input adapter. It does not throw in case the input reached EOF, but returns a -'ve valued std::char_traits<char_type>::eof() in that case.

+
Returns
character read from the input
+ +
+
+ +

◆ get_ignore_noop()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
char_int_type nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ignore_noop ()
+
+inlineprivate
+
+
Returns
character read from the input after ignoring all 'N' entries
+ +
+
+ +

◆ get_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+
+template<typename NumberType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_string (const input_format_t format,
const NumberType len,
string_t & result 
)
+
+inlineprivate
+
+ +

create a string by reading characters from the input

+
Template Parameters
+ + +
NumberTypethe type of the number
+
+
+
Parameters
+ + + + +
[in]formatthe current format (for diagnostics)
[in]lennumber of characters to read
[out]resultstring created by reading len bytes
+
+
+
Returns
whether string creation completed
+
Note
We can not reserve len bytes for the result, because len may be too large. Usually, unexpect_eof() detects the end of the input before we run out of string memory.
+ +
+
+ +

◆ get_binary()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+
+template<typename NumberType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_binary (const input_format_t format,
const NumberType len,
binary_t & result 
)
+
+inlineprivate
+
+ +

create a byte array by reading bytes from the input

+
Template Parameters
+ + +
NumberTypethe type of the number
+
+
+
Parameters
+ + + + +
[in]formatthe current format (for diagnostics)
[in]lennumber of bytes to read
[out]resultbyte array created by reading len bytes
+
+
+
Returns
whether byte array creation completed
+
Note
We can not reserve len bytes for the result, because len may be too large. Usually, unexpect_eof() detects the end of the input before we run out of memory.
+ +
+
+ +

◆ unexpect_eof()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::unexpect_eof (const input_format_t format,
const char * context 
) const
+
+inlineprivate
+
+
Parameters
+ + + +
[in]formatthe current format (for diagnostics)
[in]contextfurther context information (for diagnostics)
+
+
+
Returns
whether the last read character is not EOF
+ +
+
+ +

◆ get_token_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + +
std::string nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_token_string () const
+
+inlineprivate
+
+
Returns
a string representation of the last read byte
+ +
+
+ +

◆ exception_message()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::string nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::exception_message (const input_format_t format,
const std::string & detail,
const std::string & context 
) const
+
+inlineprivate
+
+
Parameters
+ + + + +
[in]formatthe current format
[in]detaila detailed error message
[in]contextfurther context information
+
+
+
Returns
a message string to use in the parse_error exceptions
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1binary__reader.js b/classnlohmann_1_1detail_1_1binary__reader.js new file mode 100644 index 0000000..df79c9a --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__reader.js @@ -0,0 +1,41 @@ +var classnlohmann_1_1detail_1_1binary__reader = +[ + [ "binary_reader", "classnlohmann_1_1detail_1_1binary__reader.html#ad7cb69186e01b77ec021e83137461457", null ], + [ "sax_parse", "classnlohmann_1_1detail_1_1binary__reader.html#ab4afd9ee276bbb15a0f898061aad94dd", null ], + [ "parse_bson_internal", "classnlohmann_1_1detail_1_1binary__reader.html#abf2051ba57d9ea9b378a2e7c14e22b34", null ], + [ "get_bson_cstr", "classnlohmann_1_1detail_1_1binary__reader.html#a354cbbaaea672c024ac949e1801c4302", null ], + [ "get_bson_string", "classnlohmann_1_1detail_1_1binary__reader.html#a23921422802aa472360dd05023e20565", null ], + [ "get_bson_binary", "classnlohmann_1_1detail_1_1binary__reader.html#a9940f56290b9278c58772eda2931e599", null ], + [ "parse_bson_element_internal", "classnlohmann_1_1detail_1_1binary__reader.html#a23bde2450d7a5772bf5051e36ff560a4", null ], + [ "parse_bson_element_list", "classnlohmann_1_1detail_1_1binary__reader.html#a4e07b75ccb2579d0e738b894f0fd8cf8", null ], + [ "parse_bson_array", "classnlohmann_1_1detail_1_1binary__reader.html#a23eb89a222e22533e9fd43e76722f44f", null ], + [ "parse_cbor_internal", "classnlohmann_1_1detail_1_1binary__reader.html#a4e4accd5a2a41bfb2f18a8a0fcc9421c", null ], + [ "get_cbor_string", "classnlohmann_1_1detail_1_1binary__reader.html#a545a44ae4b3fa2b7a61d9e8517fb7154", null ], + [ "get_cbor_binary", "classnlohmann_1_1detail_1_1binary__reader.html#acb001d18095dc5bcf7336ae5122b8340", null ], + [ "get_cbor_array", "classnlohmann_1_1detail_1_1binary__reader.html#a3750658328bf3ec3cf23f1626f9ec3af", null ], + [ "get_cbor_object", "classnlohmann_1_1detail_1_1binary__reader.html#a47092a2195bf9cd3cdb4dda67cc404ed", null ], + [ "parse_msgpack_internal", "classnlohmann_1_1detail_1_1binary__reader.html#ae020385ce9424271d61f85d3842c02cb", null ], + [ "get_msgpack_string", "classnlohmann_1_1detail_1_1binary__reader.html#ad8cba5585327caa550dd5b6dd25a64f8", null ], + [ "get_msgpack_binary", "classnlohmann_1_1detail_1_1binary__reader.html#a389e550fd397a48121cb82d92bb7475a", null ], + [ "get_msgpack_array", "classnlohmann_1_1detail_1_1binary__reader.html#a0ce1d7066597952efb008aaf578b2bd6", null ], + [ "get_msgpack_object", "classnlohmann_1_1detail_1_1binary__reader.html#a8bebd21ceef09b6b2562e87861832700", null ], + [ "parse_ubjson_internal", "classnlohmann_1_1detail_1_1binary__reader.html#a5a79480d661019b0f3fc615ae12f7de7", null ], + [ "get_ubjson_string", "classnlohmann_1_1detail_1_1binary__reader.html#a4ae90db51c102e912b7eac83c78733a6", null ], + [ "get_ubjson_size_value", "classnlohmann_1_1detail_1_1binary__reader.html#aba7ba9ec9a52ad2bee8baff70176aa20", null ], + [ "get_ubjson_size_type", "classnlohmann_1_1detail_1_1binary__reader.html#a7b6c2d4c95d56751e233e285a5f1fea7", null ], + [ "get_ubjson_value", "classnlohmann_1_1detail_1_1binary__reader.html#a7e5e0b71548d0649ce4f131280d06c33", null ], + [ "get_ubjson_array", "classnlohmann_1_1detail_1_1binary__reader.html#afb36cb588b795efa513fc95e949493b7", null ], + [ "get_ubjson_object", "classnlohmann_1_1detail_1_1binary__reader.html#adcf64ad3207f4bf37a5a31c920a385c3", null ], + [ "get", "classnlohmann_1_1detail_1_1binary__reader.html#ad222095c0b21a87824cb10629299629a", null ], + [ "get_ignore_noop", "classnlohmann_1_1detail_1_1binary__reader.html#a252c1179651d22c5343bcf0b538ed26a", null ], + [ "get_string", "classnlohmann_1_1detail_1_1binary__reader.html#a540919db22df36512f05a88945c13263", null ], + [ "get_binary", "classnlohmann_1_1detail_1_1binary__reader.html#a55e13d567a53234573ab3833c0ca32e9", null ], + [ "unexpect_eof", "classnlohmann_1_1detail_1_1binary__reader.html#a61a0bd8bbe7b560bd429fa990ba3ba1a", null ], + [ "get_token_string", "classnlohmann_1_1detail_1_1binary__reader.html#a7d323283c60a0b89ee5eeadf5cb9a5ad", null ], + [ "exception_message", "classnlohmann_1_1detail_1_1binary__reader.html#a9c413c9a1bade1ce345740f4d69156f0", null ], + [ "ia", "classnlohmann_1_1detail_1_1binary__reader.html#a548c770e60f2285a931de4b7333c1ab0", null ], + [ "current", "classnlohmann_1_1detail_1_1binary__reader.html#ab47df98119524e9c7d9ff0b820913883", null ], + [ "chars_read", "classnlohmann_1_1detail_1_1binary__reader.html#aa03c779d4512b5764895dc341b0ef902", null ], + [ "is_little_endian", "classnlohmann_1_1detail_1_1binary__reader.html#ad615eba561e265165a80c95061af75b0", null ], + [ "sax", "classnlohmann_1_1detail_1_1binary__reader.html#aba4d89d9d38235f72f60332d6c385222", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1binary__writer-members.html b/classnlohmann_1_1detail_1_1binary__writer-members.html new file mode 100644 index 0000000..4a2cad8 --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__writer-members.html @@ -0,0 +1,99 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::binary_writer< BasicJsonType, CharType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::binary_writer< BasicJsonType, CharType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
binary_writer(output_adapter_t< CharType > adapter)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineexplicit
calc_bson_array_size(const typename BasicJsonType::array_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_binary_size(const typename BasicJsonType::binary_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_element_size(const string_t &name, const BasicJsonType &j)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_entry_header_size(const string_t &name)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_integer_size(const std::int64_t value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_object_size(const typename BasicJsonType::object_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_string_size(const string_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
calc_bson_unsigned_size(const std::uint64_t value) noexceptnlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivatestatic
is_little_endiannlohmann::detail::binary_writer< BasicJsonType, CharType >private
oanlohmann::detail::binary_writer< BasicJsonType, CharType >private
ubjson_prefix(const BasicJsonType &j) const noexceptnlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson(const BasicJsonType &j)nlohmann::detail::binary_writer< BasicJsonType, CharType >inline
write_bson_array(const string_t &name, const typename BasicJsonType::array_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_binary(const string_t &name, const binary_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_boolean(const string_t &name, const bool value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_double(const string_t &name, const double value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_element(const string_t &name, const BasicJsonType &j)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_entry_header(const string_t &name, const std::uint8_t element_type)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_integer(const string_t &name, const std::int64_t value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_null(const string_t &name)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_object(const typename BasicJsonType::object_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_object_entry(const string_t &name, const typename BasicJsonType::object_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_string(const string_t &name, const string_t &value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_bson_unsigned(const string_t &name, const std::uint64_t value)nlohmann::detail::binary_writer< BasicJsonType, CharType >inlineprivate
write_cbor(const BasicJsonType &j)nlohmann::detail::binary_writer< BasicJsonType, CharType >inline
write_msgpack(const BasicJsonType &j)nlohmann::detail::binary_writer< BasicJsonType, CharType >inline
write_ubjson(const BasicJsonType &j, const bool use_count, const bool use_type, const bool add_prefix=true)nlohmann::detail::binary_writer< BasicJsonType, CharType >inline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1binary__writer.html b/classnlohmann_1_1detail_1_1binary__writer.html new file mode 100644 index 0000000..195f8bf --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__writer.html @@ -0,0 +1,718 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::binary_writer< BasicJsonType, CharType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::binary_writer< BasicJsonType, CharType > Class Template Reference
+
+
+ +

serialization to CBOR and MessagePack values + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + + + +

+Public Member Functions

 binary_writer (output_adapter_t< CharType > adapter)
 create a binary writer More...
 
void write_bson (const BasicJsonType &j)
 
void write_cbor (const BasicJsonType &j)
 
void write_msgpack (const BasicJsonType &j)
 
void write_ubjson (const BasicJsonType &j, const bool use_count, const bool use_type, const bool add_prefix=true)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

+void write_bson_entry_header (const string_t &name, const std::uint8_t element_type)
 Writes the given element_type and name to the output adapter.
 
+void write_bson_boolean (const string_t &name, const bool value)
 Writes a BSON element with key name and boolean value value.
 
+void write_bson_double (const string_t &name, const double value)
 Writes a BSON element with key name and double value value.
 
+void write_bson_string (const string_t &name, const string_t &value)
 Writes a BSON element with key name and string value value.
 
+void write_bson_null (const string_t &name)
 Writes a BSON element with key name and null value.
 
+void write_bson_integer (const string_t &name, const std::int64_t value)
 Writes a BSON element with key name and integer value.
 
+void write_bson_unsigned (const string_t &name, const std::uint64_t value)
 Writes a BSON element with key name and unsigned value.
 
+void write_bson_object_entry (const string_t &name, const typename BasicJsonType::object_t &value)
 Writes a BSON element with key name and object value.
 
+void write_bson_array (const string_t &name, const typename BasicJsonType::array_t &value)
 Writes a BSON element with key name and array value.
 
+void write_bson_binary (const string_t &name, const binary_t &value)
 Writes a BSON element with key name and binary value value.
 
void write_bson_element (const string_t &name, const BasicJsonType &j)
 Serializes the JSON value j to BSON and associates it with the key name. More...
 
void write_bson_object (const typename BasicJsonType::object_t &value)
 
+CharType ubjson_prefix (const BasicJsonType &j) const noexcept
 determine the type prefix of container values
 
+ + + + + + + + + + + + + + + + + + + +

+Static Private Member Functions

static std::size_t calc_bson_entry_header_size (const string_t &name)
 
static std::size_t calc_bson_string_size (const string_t &value)
 
static std::size_t calc_bson_integer_size (const std::int64_t value)
 
static constexpr std::size_t calc_bson_unsigned_size (const std::uint64_t value) noexcept
 
static std::size_t calc_bson_array_size (const typename BasicJsonType::array_t &value)
 
static std::size_t calc_bson_binary_size (const typename BasicJsonType::binary_t &value)
 
static std::size_t calc_bson_element_size (const string_t &name, const BasicJsonType &j)
 Calculates the size necessary to serialize the JSON value j with its name. More...
 
static std::size_t calc_bson_object_size (const typename BasicJsonType::object_t &value)
 Calculates the size of the BSON serialization of the given JSON-object j. More...
 
+ + + + + + + +

+Private Attributes

+const bool is_little_endian = little_endianess()
 whether we can assume little endianess
 
+output_adapter_t< CharType > oa = nullptr
 the output
 
+

Detailed Description

+

template<typename BasicJsonType, typename CharType>
+class nlohmann::detail::binary_writer< BasicJsonType, CharType >

+ +

serialization to CBOR and MessagePack values

+

Constructor & Destructor Documentation

+ +

◆ binary_writer()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
nlohmann::detail::binary_writer< BasicJsonType, CharType >::binary_writer (output_adapter_t< CharType > adapter)
+
+inlineexplicit
+
+ +

create a binary writer

+
Parameters
+ + +
[in]adapteroutput adapter to write to
+
+
+ +
+
+

Member Function Documentation

+ +

◆ write_bson()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_bson (const BasicJsonType & j)
+
+inline
+
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Precondition
j.type() == value_t::object
+ +
+
+ +

◆ write_cbor()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_cbor (const BasicJsonType & j)
+
+inline
+
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+ +
+
+ +

◆ write_msgpack()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_msgpack (const BasicJsonType & j)
+
+inline
+
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+ +
+
+ +

◆ write_ubjson()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_ubjson (const BasicJsonType & j,
const bool use_count,
const bool use_type,
const bool add_prefix = true 
)
+
+inline
+
+
Parameters
+ + + + + +
[in]jJSON value to serialize
[in]use_countwhether to use '#' prefixes (optimized format)
[in]use_typewhether to use '$' prefixes (optimized format)
[in]add_prefixwhether prefixes need to be used for this value
+
+
+ +
+
+ +

◆ calc_bson_entry_header_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_entry_header_size (const string_t & name)
+
+inlinestaticprivate
+
+
Returns
The size of a BSON document entry header, including the id marker and the entry name size (and its null-terminator).
+ +
+
+ +

◆ calc_bson_string_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_string_size (const string_t & value)
+
+inlinestaticprivate
+
+
Returns
The size of the BSON-encoded string in value
+ +
+
+ +

◆ calc_bson_integer_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_integer_size (const std::int64_t value)
+
+inlinestaticprivate
+
+
Returns
The size of the BSON-encoded integer value
+ +
+
+ +

◆ calc_bson_unsigned_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static constexpr std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_unsigned_size (const std::uint64_t value)
+
+inlinestaticconstexprprivatenoexcept
+
+
Returns
The size of the BSON-encoded unsigned integer in j
+ +
+
+ +

◆ calc_bson_array_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_array_size (const typename BasicJsonType::array_t & value)
+
+inlinestaticprivate
+
+
Returns
The size of the BSON-encoded array value
+ +
+
+ +

◆ calc_bson_binary_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_binary_size (const typename BasicJsonType::binary_t & value)
+
+inlinestaticprivate
+
+
Returns
The size of the BSON-encoded binary array value
+ +
+
+ +

◆ calc_bson_element_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_element_size (const string_t & name,
const BasicJsonType & j 
)
+
+inlinestaticprivate
+
+ +

Calculates the size necessary to serialize the JSON value j with its name.

+
Returns
The calculated size for the BSON document entry for j with the given name.
+ +
+
+ +

◆ write_bson_element()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_bson_element (const string_t & name,
const BasicJsonType & j 
)
+
+inlineprivate
+
+ +

Serializes the JSON value j to BSON and associates it with the key name.

+
Parameters
+ + +
nameThe name to associate with the JSON entity j within the current BSON document
+
+
+
Returns
The size of the BSON entry
+ +
+
+ +

◆ calc_bson_object_size()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
static std::size_t nlohmann::detail::binary_writer< BasicJsonType, CharType >::calc_bson_object_size (const typename BasicJsonType::object_t & value)
+
+inlinestaticprivate
+
+ +

Calculates the size of the BSON serialization of the given JSON-object j.

+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Precondition
j.type() == value_t::object
+ +
+
+ +

◆ write_bson_object()

+ +
+
+
+template<typename BasicJsonType , typename CharType >
+ + + + + +
+ + + + + + + + +
void nlohmann::detail::binary_writer< BasicJsonType, CharType >::write_bson_object (const typename BasicJsonType::object_t & value)
+
+inlineprivate
+
+
Parameters
+ + +
[in]jJSON value to serialize
+
+
+
Precondition
j.type() == value_t::object
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1binary__writer.js b/classnlohmann_1_1detail_1_1binary__writer.js new file mode 100644 index 0000000..870e124 --- /dev/null +++ b/classnlohmann_1_1detail_1_1binary__writer.js @@ -0,0 +1,23 @@ +var classnlohmann_1_1detail_1_1binary__writer = +[ + [ "binary_writer", "classnlohmann_1_1detail_1_1binary__writer.html#a373289af95a946c19bb4a58a5df71a78", null ], + [ "write_bson", "classnlohmann_1_1detail_1_1binary__writer.html#a9ffc566db5219b473762462234b47db9", null ], + [ "write_cbor", "classnlohmann_1_1detail_1_1binary__writer.html#aa0ab8d27fd88a33a2f801413ac4c7fbc", null ], + [ "write_msgpack", "classnlohmann_1_1detail_1_1binary__writer.html#ae4e0852b64102ce4b07d99f08f828b7c", null ], + [ "write_ubjson", "classnlohmann_1_1detail_1_1binary__writer.html#a0f6c65053d859269f88eb4ebb0cd7060", null ], + [ "write_bson_entry_header", "classnlohmann_1_1detail_1_1binary__writer.html#a1b5b7f5c03b1f8b1f59ea61db9634108", null ], + [ "write_bson_boolean", "classnlohmann_1_1detail_1_1binary__writer.html#ae099435e1df3096e0fc78333282f8f67", null ], + [ "write_bson_double", "classnlohmann_1_1detail_1_1binary__writer.html#a263ec18815467bb9919021ef126919ca", null ], + [ "write_bson_string", "classnlohmann_1_1detail_1_1binary__writer.html#a5e6574416915208fc035b57338ae3252", null ], + [ "write_bson_null", "classnlohmann_1_1detail_1_1binary__writer.html#a9927c1110b18661e0224a76156e5a7a9", null ], + [ "write_bson_integer", "classnlohmann_1_1detail_1_1binary__writer.html#a553ad4dbdf27238eef90867e4bf2f3e5", null ], + [ "write_bson_unsigned", "classnlohmann_1_1detail_1_1binary__writer.html#a5e295ed1be6af6260d2a65f7397c3742", null ], + [ "write_bson_object_entry", "classnlohmann_1_1detail_1_1binary__writer.html#a6231302930265eccb3f56c378f7b0661", null ], + [ "write_bson_array", "classnlohmann_1_1detail_1_1binary__writer.html#a025212bd170253638b9f05b3b6aa5bf9", null ], + [ "write_bson_binary", "classnlohmann_1_1detail_1_1binary__writer.html#a97d34d9a70ddc06ae782c55454df42bc", null ], + [ "write_bson_element", "classnlohmann_1_1detail_1_1binary__writer.html#a7ff58bf1a80018148bed860667ffca07", null ], + [ "write_bson_object", "classnlohmann_1_1detail_1_1binary__writer.html#a29b3e0f83a8e5f2307804023109ba2c9", null ], + [ "ubjson_prefix", "classnlohmann_1_1detail_1_1binary__writer.html#a4c129249a5aee8e4ec8add6c6184e4f7", null ], + [ "is_little_endian", "classnlohmann_1_1detail_1_1binary__writer.html#a048887c907afe39759b777e8c888414c", null ], + [ "oa", "classnlohmann_1_1detail_1_1binary__writer.html#a6f15b782a7900f50ef37d123008e601b", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1exception-members.html b/classnlohmann_1_1detail_1_1exception-members.html new file mode 100644 index 0000000..b1e6d42 --- /dev/null +++ b/classnlohmann_1_1detail_1_1exception-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::exception Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::exception, including all inherited members.

+ + + + +
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1exception.html b/classnlohmann_1_1detail_1_1exception.html new file mode 100644 index 0000000..6a488fb --- /dev/null +++ b/classnlohmann_1_1detail_1_1exception.html @@ -0,0 +1,128 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::exception Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::exception Class Reference
+
+
+ +

general exception of the basic_json class + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::exception:
+
+
+ + + + + + +

+Public Member Functions

+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
+ + + + +

+Public Attributes

+const int id
 the id of the exception
 
+ + + + +

+Private Attributes

+std::runtime_error m
 an exception object as storage for error messages
 
+

Detailed Description

+

general exception of the basic_json class

+

This class is an extension of std::exception objects with a member id for exception ids. It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as "wildcard" to catch exceptions.

+

Subclasses:

    +
  • parse_error for exceptions indicating a parse error
  • +
  • invalid_iterator for exceptions indicating errors with iterators
  • +
  • type_error for exceptions indicating executing a member function with a wrong type
  • +
  • out_of_range for exceptions indicating access out of the defined range
  • +
  • other_error for exceptions indicating other library errors
  • +
+

@liveexample{The following code shows how arbitrary library exceptions can be caught.,exception}

+
Since
version 3.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1exception.js b/classnlohmann_1_1detail_1_1exception.js new file mode 100644 index 0000000..181e10d --- /dev/null +++ b/classnlohmann_1_1detail_1_1exception.js @@ -0,0 +1,6 @@ +var classnlohmann_1_1detail_1_1exception = +[ + [ "what", "classnlohmann_1_1detail_1_1exception.html#a11fe48748e811531614c84883b00ccd5", null ], + [ "id", "classnlohmann_1_1detail_1_1exception.html#a0d4589a3fb54e81646d986c05efa3b9a", null ], + [ "m", "classnlohmann_1_1detail_1_1exception.html#ad54778dc4f125488cbce8ec276dfdde2", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1exception.png b/classnlohmann_1_1detail_1_1exception.png new file mode 100644 index 0000000000000000000000000000000000000000..2d536a5c21facf55c646998a31f49f15033f2f2c GIT binary patch literal 1723 zcmb7_dpJ~S9LFb3MHji0(BnSHF1k=OE@{nR!YG_vCRCKf&`n9kNW~0^CQou}YBXb= z$`nPVaoJss$S`WAB+hP9lWQ0a<1%~B?6ZIM$3Av>G}1f50I_TE!X{3ZjQVMa{CEkvA=LS5XqZ4J z(yQu2;irx0Becq)X9-JH(5ep_3yQUbCT?k4O|kGS;77(6otT**+`b;~yw7EG>jj<} z;(PH0M~%;4R_Ad_Rbzk7p#W^JB4X~?Gi*a?e4#_`i|zXqeMvJ8E@inRU&>~aWJxUw zF86Szo~D5cIye$9Ez7XfqyFL4V6f`>QL!G+!{u;Lo9_yD+eb~8Y3hqq?mZmsU|s6J zFf-UQ!waH(pjYdxmkS%3-Q^mgU9QiNw;tF#WPpyA$w@}#*)0{ zfA6B#9~+Aj6NW@hhRVke=#n7INrt3%ynmeh=6>W{77`QtL3`e~FQmF6HS_b&o*fZ6 z33JC~Z_XsohDZZCphAHxtXNEo$8cwD9hB4Ey2cv&IV z_ogg&ZA4(WY2R6cSjn2g+iHkFxTWU59I@8WB%NqjxQgjSTP;DXB;2VZ>97DtrRS?4 zRvS~S{Z3fGs5#>x+5GjD6iBw7fq~g^6=Cj!G7JR}$+p+`vBCquVhjNQ zNH{47TC{LL@Mt!s0tPJ{5TObFfJjG^2ZCx<6(9&N1LL4=a_unyNGxElUmet7B+jUl zhSYOGTka+CEc=~x7f-YoaA|7CkTQb}o}V-6=`Bjx;0uVLBrj>MQvfh!U7WShvca!c zHinPT9hk*M7!80k>?r2i`F4*$(ZJMMA>U}5CeO*Wj_Mdz3K8uD#hz`B|9sw5Y)-ju z&Kdb8x{Lm&N9o<2d~px^9kz=-pE49jp5%BlVwj}jK|2#7e*1m0e*E+N?zn4ehQi3% zu+w2QLfbXqsg3+a%oV5DdxC5$4$COo@!Xl1>B7j0r_c12hhow-k{1mT1ubm}Pc}&t zWF%ICQOxFU>sEG*{l`0>9q@`^TA^Yx<7=?DwzH{R9HUb!5NR1zwi*a`{P}85mTKNS zjEk_DXZHm`;pD8d&{w)^Ln2ST{}2?%JIhKij5$6x&SBc;?67t@S>Px2yYytEJk*M* zF>e=BnL4u-KMD-=(H9Oxhx?4*k@WsG_MPSFA_!WM?RsqA`(Ha)62AJ|Qpi%yG;3$p zm91qO$@?{mX$zGax%7Jbp6#EUa8&Q2*A8FS<_>;~0v3LfJC*3&A8B6GK~L@Pu960a zQn97DhJ`&kL}|!HhwKHJ*W1N8x%FSIf<>ZyP@fmRW}a+fs6{zm!=IXtD++m6!?8`pB$S!RMR+lB6VHjXb+GRVJ5Vs2+Vw_7t3b(RKB2E z?1_ggx(3>yrt(;)jVbc9y3xrSlHv@Z{2Xo=QGhcp*Oj$ zWvqn!!%?py{C#j-Q0@_5zyb$J(_NSqb%T(3$or1~!0mGL-7C5eCYNw + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::file_input_adapter Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::file_input_adapter, including all inherited members.

+ + +
m_filenlohmann::detail::file_input_adapterprivate
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1file__input__adapter.html b/classnlohmann_1_1detail_1_1file__input__adapter.html new file mode 100644 index 0000000..4050483 --- /dev/null +++ b/classnlohmann_1_1detail_1_1file__input__adapter.html @@ -0,0 +1,84 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::file_input_adapter Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::file_input_adapter Class Reference
+
+
+ +

#include <json.hpp>

+ + + + + +

+Private Attributes

+std::FILE * m_file
 the file pointer to read from
 
+

Detailed Description

+

Input adapter for stdio file access. This adapter read only 1 byte and do not use any buffer. This adapter is a very low level adapter.

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1file__input__adapter.js b/classnlohmann_1_1detail_1_1file__input__adapter.js new file mode 100644 index 0000000..45edf75 --- /dev/null +++ b/classnlohmann_1_1detail_1_1file__input__adapter.js @@ -0,0 +1,4 @@ +var classnlohmann_1_1detail_1_1file__input__adapter = +[ + [ "m_file", "classnlohmann_1_1detail_1_1file__input__adapter.html#a164fbe2739ac97e517e22bc1fff1c174", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1input__stream__adapter-members.html b/classnlohmann_1_1detail_1_1input__stream__adapter-members.html new file mode 100644 index 0000000..6b726e4 --- /dev/null +++ b/classnlohmann_1_1detail_1_1input__stream__adapter-members.html @@ -0,0 +1,72 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::input_stream_adapter Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::input_stream_adapter, including all inherited members.

+ + +
isnlohmann::detail::input_stream_adapterprivate
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1input__stream__adapter.html b/classnlohmann_1_1detail_1_1input__stream__adapter.html new file mode 100644 index 0000000..09dae91 --- /dev/null +++ b/classnlohmann_1_1detail_1_1input__stream__adapter.html @@ -0,0 +1,84 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::input_stream_adapter Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::input_stream_adapter Class Reference
+
+
+ +

#include <json.hpp>

+ + + + + +

+Private Attributes

+std::istream * is = nullptr
 the associated input stream
 
+

Detailed Description

+

Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at beginning of input. Does not support changing the underlying std::streambuf in mid-input. Maintains underlying std::istream and std::streambuf to support subsequent use of standard std::istream operations to process any input characters following those used in parsing the JSON input. Clears the std::istream flags; any input errors (e.g., EOF) will be detected by the first subsequent call for input from the std::istream.

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1input__stream__adapter.js b/classnlohmann_1_1detail_1_1input__stream__adapter.js new file mode 100644 index 0000000..3470aee --- /dev/null +++ b/classnlohmann_1_1detail_1_1input__stream__adapter.js @@ -0,0 +1,4 @@ +var classnlohmann_1_1detail_1_1input__stream__adapter = +[ + [ "is", "classnlohmann_1_1detail_1_1input__stream__adapter.html#a55893bf84cb17d877464984942df9632", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1invalid__iterator-members.html b/classnlohmann_1_1detail_1_1invalid__iterator-members.html new file mode 100644 index 0000000..a3ea8e7 --- /dev/null +++ b/classnlohmann_1_1detail_1_1invalid__iterator-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::invalid_iterator Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::invalid_iterator, including all inherited members.

+ + + + +
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1invalid__iterator.html b/classnlohmann_1_1detail_1_1invalid__iterator.html new file mode 100644 index 0000000..2837ea7 --- /dev/null +++ b/classnlohmann_1_1detail_1_1invalid__iterator.html @@ -0,0 +1,148 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::invalid_iterator Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::invalid_iterator Class Reference
+
+
+ +

exception indicating errors with iterators + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::invalid_iterator:
+
+
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
- Public Attributes inherited from nlohmann::detail::exception
+const int id
 the id of the exception
 
+

Detailed Description

+

exception indicating errors with iterators

+

This exception is thrown if iterators passed to a library function do not match the expected semantics.

+

Exceptions have ids 2xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.invalid_iterator.201 iterators are not compatible The iterators passed to constructor basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.
json.exception.invalid_iterator.202 iterator does not fit current value In an erase or insert function, the passed iterator pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion.
json.exception.invalid_iterator.203 iterators do not fit current value Either iterator passed to function erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from.
json.exception.invalid_iterator.204 iterators out of range When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (begin(), end()), because this is the only way the single stored value is expressed. All other ranges are invalid.
json.exception.invalid_iterator.205 iterator out of range When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the begin() iterator, because it is the only way to address the stored value. All other iterators are invalid.
json.exception.invalid_iterator.206 cannot construct with iterators from null The iterators passed to constructor basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range.
json.exception.invalid_iterator.207 cannot use key() for non-object iterators The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key.
json.exception.invalid_iterator.208 cannot use operator[] for object iterators The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.
json.exception.invalid_iterator.209 cannot use offsets with object iterators The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.
json.exception.invalid_iterator.210 iterators do not fit The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.
json.exception.invalid_iterator.211 passed iterators may not belong to container The iterator range passed to the insert function must not be a subrange of the container to insert to.
json.exception.invalid_iterator.212 cannot compare iterators of different containers When two iterators are compared, they must belong to the same container.
json.exception.invalid_iterator.213 cannot compare order of object iterators The order of object iterators cannot be compared, because JSON objects are unordered.
json.exception.invalid_iterator.214 cannot get value Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to begin().
+

@liveexample{The following code shows how an invalid_iterator exception can be caught.,invalid_iterator}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1invalid__iterator.png b/classnlohmann_1_1detail_1_1invalid__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..c292bf797757c95e759a3cb6775e8e2edc3a66f1 GIT binary patch literal 706 zcmeAS@N?(olHy`uVBq!ia0vp^2Y@($gBeIxq;!=5DTx4|5ZC|z{{xvnUO&CokvIX! z0^3~Pf*r51zA$zXYgAoWR0`d^uzyU09! z_SOGF4`!Y|d&#(A$(OQ-DU07~S6|OGekk+4_vzyu%d+dDUv0e|weN9Sndhn!t_`=I zdx{-?n_ZfB$;;?)NJyal)s1hSsI0v7lW)$B+pRhO)>hBHwQJd%;`Q&3#0N>*v(Nbc zjk#gvjYUD5m-R7heHzYqEA`!5hvnZtbX=3Z<@1)c;3H4O|33ovE7`GkaXBh5N(!fQj$r157_w#W5&nmo!|@ zE@-;Q`0Ta(?1YL2i&lmjQ3i&2z_9mcWoTH=#Bd;(k>SBg28ItIz_8b1V6Z`ze&D6K z)MS$f!(*7#D#lam+Y|O4v%FP5=jPN|b@Bmj>c2x9to8bTtz&rhKvwtE#cxxkUvDWq zz5HWPpxrCk4Z#xo|2%F;^7$kha_x7kc*E7q&)S`-x8i2CNG@B{^-8Mx=GFb}(JLCt z)_gD8%>4F^$|(c$5WLY@=7JR~{TJRna>wbX$mW~>Kl<`KSoU<|*7xEK{9Uq$VE9^Rxn# + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::iter_impl< BasicJsonType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::iter_impl< BasicJsonType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
difference_type typedefnlohmann::detail::iter_impl< BasicJsonType >
iter_impl()=defaultnlohmann::detail::iter_impl< BasicJsonType >
iter_impl(pointer object) noexceptnlohmann::detail::iter_impl< BasicJsonType >inlineexplicit
iter_impl(const iter_impl< const BasicJsonType > &other) noexceptnlohmann::detail::iter_impl< BasicJsonType >inline
iter_impl(const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexceptnlohmann::detail::iter_impl< BasicJsonType >inline
iterator_category typedefnlohmann::detail::iter_impl< BasicJsonType >
key() constnlohmann::detail::iter_impl< BasicJsonType >inline
m_itnlohmann::detail::iter_impl< BasicJsonType >private
m_objectnlohmann::detail::iter_impl< BasicJsonType >private
operator!=(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator*() constnlohmann::detail::iter_impl< BasicJsonType >inline
operator+(difference_type i) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator+(difference_type i, const iter_impl &it)nlohmann::detail::iter_impl< BasicJsonType >friend
operator++(int)nlohmann::detail::iter_impl< BasicJsonType >inline
operator++()nlohmann::detail::iter_impl< BasicJsonType >inline
operator+=(difference_type i)nlohmann::detail::iter_impl< BasicJsonType >inline
operator-(difference_type i) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator-(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator--(int)nlohmann::detail::iter_impl< BasicJsonType >inline
operator--()nlohmann::detail::iter_impl< BasicJsonType >inline
operator-=(difference_type i)nlohmann::detail::iter_impl< BasicJsonType >inline
operator->() constnlohmann::detail::iter_impl< BasicJsonType >inline
operator<(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator<=(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator=(const iter_impl< const BasicJsonType > &other) noexceptnlohmann::detail::iter_impl< BasicJsonType >inline
operator=(const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexceptnlohmann::detail::iter_impl< BasicJsonType >inline
operator==(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator>(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator>=(const iter_impl &other) constnlohmann::detail::iter_impl< BasicJsonType >inline
operator[](difference_type n) constnlohmann::detail::iter_impl< BasicJsonType >inline
pointer typedefnlohmann::detail::iter_impl< BasicJsonType >
reference typedefnlohmann::detail::iter_impl< BasicJsonType >
set_begin() noexceptnlohmann::detail::iter_impl< BasicJsonType >inlineprivate
set_end() noexceptnlohmann::detail::iter_impl< BasicJsonType >inlineprivate
value() constnlohmann::detail::iter_impl< BasicJsonType >inline
value_type typedefnlohmann::detail::iter_impl< BasicJsonType >
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1iter__impl.html b/classnlohmann_1_1detail_1_1iter__impl.html new file mode 100644 index 0000000..8a55c73 --- /dev/null +++ b/classnlohmann_1_1detail_1_1iter__impl.html @@ -0,0 +1,1175 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::iter_impl< BasicJsonType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::iter_impl< BasicJsonType > Class Template Reference
+
+
+ +

a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class. + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + + + + + + +

+Public Types

using iterator_category = std::bidirectional_iterator_tag
 
+using value_type = typename BasicJsonType::value_type
 the type of the values when the iterator is dereferenced
 
+using difference_type = typename BasicJsonType::difference_type
 a type to represent differences between iterators
 
+using pointer = typename std::conditional< std::is_const< BasicJsonType >::value, typename BasicJsonType::const_pointer, typename BasicJsonType::pointer >::type
 defines a pointer to the type iterated over (value_type)
 
+using reference = typename std::conditional< std::is_const< BasicJsonType >::value, typename BasicJsonType::const_reference, typename BasicJsonType::reference >::type
 defines a reference to the type iterated over (value_type)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 iter_impl ()=default
 default constructor More...
 
 iter_impl (pointer object) noexcept
 constructor for a given JSON instance More...
 
 iter_impl (const iter_impl< const BasicJsonType > &other) noexcept
 const copy constructor More...
 
iter_imploperator= (const iter_impl< const BasicJsonType > &other) noexcept
 converting assignment More...
 
 iter_impl (const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexcept
 converting constructor More...
 
iter_imploperator= (const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexcept
 converting assignment More...
 
reference operator* () const
 return a reference to the value pointed to by the iterator More...
 
pointer operator-> () const
 dereference the iterator More...
 
const iter_impl operator++ (int)
 post-increment (it++) More...
 
iter_imploperator++ ()
 pre-increment (++it) More...
 
const iter_impl operator-- (int)
 post-decrement (it–) More...
 
iter_imploperator-- ()
 pre-decrement (–it) More...
 
bool operator== (const iter_impl &other) const
 comparison: equal More...
 
bool operator!= (const iter_impl &other) const
 comparison: not equal More...
 
bool operator< (const iter_impl &other) const
 comparison: smaller More...
 
bool operator<= (const iter_impl &other) const
 comparison: less than or equal More...
 
bool operator> (const iter_impl &other) const
 comparison: greater than More...
 
bool operator>= (const iter_impl &other) const
 comparison: greater than or equal More...
 
iter_imploperator+= (difference_type i)
 add to iterator More...
 
iter_imploperator-= (difference_type i)
 subtract from iterator More...
 
iter_impl operator+ (difference_type i) const
 add to iterator More...
 
iter_impl operator- (difference_type i) const
 subtract from iterator More...
 
difference_type operator- (const iter_impl &other) const
 return difference More...
 
reference operator[] (difference_type n) const
 access to successor More...
 
const object_t::key_type & key () const
 return the key of an object iterator More...
 
reference value () const
 return the value of an iterator More...
 
+ + + + + + + +

+Private Member Functions

void set_begin () noexcept
 set the iterator to the first value More...
 
void set_end () noexcept
 set the iterator past the last value More...
 
+ + + + + + + +

+Private Attributes

+pointer m_object = nullptr
 associated JSON instance
 
+internal_iterator< typename std::remove_const< BasicJsonType >::type > m_it {}
 the actual iterator of the associated instance
 
+ + + + +

+Friends

iter_impl operator+ (difference_type i, const iter_impl &it)
 addition of distance and iterator More...
 
+

Detailed Description

+

template<typename BasicJsonType>
+class nlohmann::detail::iter_impl< BasicJsonType >

+ +

a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class.

+
Note
An iterator is called initialized when a pointer to a JSON value has been set (e.g., by a constructor or a copy assignment). If the iterator is default-constructed, it is uninitialized and most methods are undefined. The library uses assertions to detect calls on uninitialized iterators.** @requirement The class satisfies the following concept requirements:
    +
  • BidirectionalIterator: The iterator that can be moved can be moved in both directions (i.e. incremented and decremented).
  • +
+
+
Since
version 1.0.0, simplified in version 2.0.9, change to bidirectional iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593)
+

Member Typedef Documentation

+ +

◆ iterator_category

+ +
+
+
+template<typename BasicJsonType >
+ + + + +
using nlohmann::detail::iter_impl< BasicJsonType >::iterator_category = std::bidirectional_iterator_tag
+
+

The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. The C++ Standard has never required user-defined iterators to derive from std::iterator. A user-defined iterator should provide publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ iter_impl() [1/4]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
iter_impl< typename std::conditional< std::is_const< BasicJsonType >::value, typename std::remove_const< BasicJsonType >::type, const BasicJsonType >::type > ()
+
+default
+
+ +

default constructor

+

allow basic_json to access private members

+ +
+
+ +

◆ iter_impl() [2/4]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
nlohmann::detail::iter_impl< BasicJsonType >::iter_impl (pointer object)
+
+inlineexplicitnoexcept
+
+ +

constructor for a given JSON instance

+
Parameters
+ + +
[in]objectpointer to a JSON object for this iterator
+
+
+
Precondition
object != nullptr
+
Postcondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ iter_impl() [3/4]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
nlohmann::detail::iter_impl< BasicJsonType >::iter_impl (const iter_impl< const BasicJsonType > & other)
+
+inlinenoexcept
+
+ +

const copy constructor

+
Note
The conventional copy constructor and copy assignment are implicitly defined. Combined with the following converting constructor and assignment, they support: (1) copy from iterator to iterator, (2) copy from const iterator to const iterator, and (3) conversion from iterator to const iterator. However conversion from const iterator to iterator is not defined.
+
Parameters
+ + +
[in]otherconst iterator to copy from
+
+
+
Note
This copy constructor had to be defined explicitly to circumvent a bug occurring on msvc v19.0 compiler (VS 2015) debug build. For more information refer to: https://github.com/nlohmann/json/issues/1608
+ +
+
+ +

◆ iter_impl() [4/4]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
nlohmann::detail::iter_impl< BasicJsonType >::iter_impl (const iter_impl< typename std::remove_const< BasicJsonType >::type > & other)
+
+inlinenoexcept
+
+ +

converting constructor

+
Parameters
+ + +
[in]othernon-const iterator to copy from
+
+
+
Note
It is not checked whether other is initialized.
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator= (const iter_impl< const BasicJsonType > & other)
+
+inlinenoexcept
+
+ +

converting assignment

+
Parameters
+ + +
[in]otherconst iterator to copy from
+
+
+
Returns
const/non-const iterator
+
Note
It is not checked whether other is initialized.
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator= (const iter_impl< typename std::remove_const< BasicJsonType >::type > & other)
+
+inlinenoexcept
+
+ +

converting assignment

+
Parameters
+ + +
[in]othernon-const iterator to copy from
+
+
+
Returns
const/non-const iterator
+
Note
It is not checked whether other is initialized.
+ +
+
+ +

◆ set_begin()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
void nlohmann::detail::iter_impl< BasicJsonType >::set_begin ()
+
+inlineprivatenoexcept
+
+ +

set the iterator to the first value

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ set_end()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
void nlohmann::detail::iter_impl< BasicJsonType >::set_end ()
+
+inlineprivatenoexcept
+
+ +

set the iterator past the last value

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator*()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
reference nlohmann::detail::iter_impl< BasicJsonType >::operator* () const
+
+inline
+
+ +

return a reference to the value pointed to by the iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator->()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
pointer nlohmann::detail::iter_impl< BasicJsonType >::operator-> () const
+
+inline
+
+ +

dereference the iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator++() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
const iter_impl nlohmann::detail::iter_impl< BasicJsonType >::operator++ (int )
+
+inline
+
+ +

post-increment (it++)

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator++() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator++ ()
+
+inline
+
+ +

pre-increment (++it)

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator--() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
const iter_impl nlohmann::detail::iter_impl< BasicJsonType >::operator-- (int )
+
+inline
+
+ +

post-decrement (it–)

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator--() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator-- ()
+
+inline
+
+ +

pre-decrement (–it)

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator==()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator== (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: equal

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator!=()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator!= (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: not equal

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator<()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator< (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: smaller

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator<=()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator<= (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: less than or equal

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator>()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator> (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: greater than

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator>=()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::iter_impl< BasicJsonType >::operator>= (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

comparison: greater than or equal

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator+= (difference_type i)
+
+inline
+
+ +

add to iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl& nlohmann::detail::iter_impl< BasicJsonType >::operator-= (difference_type i)
+
+inline
+
+ +

subtract from iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator+()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl nlohmann::detail::iter_impl< BasicJsonType >::operator+ (difference_type i) const
+
+inline
+
+ +

add to iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator-() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
iter_impl nlohmann::detail::iter_impl< BasicJsonType >::operator- (difference_type i) const
+
+inline
+
+ +

subtract from iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator-() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
difference_type nlohmann::detail::iter_impl< BasicJsonType >::operator- (const iter_impl< BasicJsonType > & other) const
+
+inline
+
+ +

return difference

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
reference nlohmann::detail::iter_impl< BasicJsonType >::operator[] (difference_type n) const
+
+inline
+
+ +

access to successor

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ key()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
const object_t::key_type& nlohmann::detail::iter_impl< BasicJsonType >::key () const
+
+inline
+
+ +

return the key of an object iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+ +

◆ value()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
reference nlohmann::detail::iter_impl< BasicJsonType >::value () const
+
+inline
+
+ +

return the value of an iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator+

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iter_impl operator+ (difference_type i,
const iter_impl< BasicJsonType > & it 
)
+
+friend
+
+ +

addition of distance and iterator

+
Precondition
The iterator is initialized; i.e. m_object != nullptr.
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1iter__impl.js b/classnlohmann_1_1detail_1_1iter__impl.js new file mode 100644 index 0000000..112b108 --- /dev/null +++ b/classnlohmann_1_1detail_1_1iter__impl.js @@ -0,0 +1,39 @@ +var classnlohmann_1_1detail_1_1iter__impl = +[ + [ "iterator_category", "classnlohmann_1_1detail_1_1iter__impl.html#ad9e091f5c70b34b5b1abc1ab15fd9106", null ], + [ "value_type", "classnlohmann_1_1detail_1_1iter__impl.html#ab35586a44f2222272c5346baa3013f67", null ], + [ "difference_type", "classnlohmann_1_1detail_1_1iter__impl.html#a2f7ea9f7022850809c60fc3263775840", null ], + [ "pointer", "classnlohmann_1_1detail_1_1iter__impl.html#a69e52f890ce8c556fd68ce109e24b360", null ], + [ "reference", "classnlohmann_1_1detail_1_1iter__impl.html#a5be8001be099c6b82310f4d387b953ce", null ], + [ "iter_impl", "classnlohmann_1_1detail_1_1iter__impl.html#a19aa457f9c4af1b7e3af59839132cc5c", null ], + [ "iter_impl", "classnlohmann_1_1detail_1_1iter__impl.html#a88a00484ac201c52fc5f613d88a2918b", null ], + [ "iter_impl", "classnlohmann_1_1detail_1_1iter__impl.html#a71f84fb6e009619f12972bcf9002b8cd", null ], + [ "iter_impl", "classnlohmann_1_1detail_1_1iter__impl.html#a867f7eb55091be31b013adb3e46816d3", null ], + [ "operator=", "classnlohmann_1_1detail_1_1iter__impl.html#a9a5cd7864a8f848ef107d3f5a330f5e7", null ], + [ "operator=", "classnlohmann_1_1detail_1_1iter__impl.html#a7159ed1cfe7c423a2baef8bea0c94509", null ], + [ "set_begin", "classnlohmann_1_1detail_1_1iter__impl.html#a5d5f92c7f6848814bc82cf7e4e541820", null ], + [ "set_end", "classnlohmann_1_1detail_1_1iter__impl.html#a23e50ad4c13aa62d9ac7f60a123823ee", null ], + [ "operator*", "classnlohmann_1_1detail_1_1iter__impl.html#a5ca57856d9bba54a5fc51cee891de827", null ], + [ "operator->", "classnlohmann_1_1detail_1_1iter__impl.html#a6da3d2b34528aff328f3dcb513076dec", null ], + [ "operator++", "classnlohmann_1_1detail_1_1iter__impl.html#a60f3b0a96cc0bff9a7e6ab84ca538a45", null ], + [ "operator++", "classnlohmann_1_1detail_1_1iter__impl.html#abdfe2a7f464400a7ab572782d14b922f", null ], + [ "operator--", "classnlohmann_1_1detail_1_1iter__impl.html#af91fb0bb9b2a2e96af030564ded2d92c", null ], + [ "operator--", "classnlohmann_1_1detail_1_1iter__impl.html#a84e689fb581d651d130039f7cb81494a", null ], + [ "operator==", "classnlohmann_1_1detail_1_1iter__impl.html#a2b592605b63ae7f5401996ffa3b14393", null ], + [ "operator!=", "classnlohmann_1_1detail_1_1iter__impl.html#aeab0e2b5da70b3bdebecd5b1a6ee66a6", null ], + [ "operator<", "classnlohmann_1_1detail_1_1iter__impl.html#a0d14cd76203e00bdcef6a64a5d055cc7", null ], + [ "operator<=", "classnlohmann_1_1detail_1_1iter__impl.html#ac6f71b36d7c87e427d1fee83f2600fad", null ], + [ "operator>", "classnlohmann_1_1detail_1_1iter__impl.html#aaf3620b8dfa4bed8a9ac2b51dd55dbd7", null ], + [ "operator>=", "classnlohmann_1_1detail_1_1iter__impl.html#a634f85da575cb60b012a687efa26e11a", null ], + [ "operator+=", "classnlohmann_1_1detail_1_1iter__impl.html#a3eef94f9d167046e7f773aeb6b78090c", null ], + [ "operator-=", "classnlohmann_1_1detail_1_1iter__impl.html#abcc9d51bc52f2e8483bbe4018f05e978", null ], + [ "operator+", "classnlohmann_1_1detail_1_1iter__impl.html#a8ef76aeb5a5032768f0f61f48ac189c0", null ], + [ "operator-", "classnlohmann_1_1detail_1_1iter__impl.html#a0dd9c415b94a02ff2aa25da75e52da30", null ], + [ "operator-", "classnlohmann_1_1detail_1_1iter__impl.html#a49bf3e708a9c1c88c415011735962d06", null ], + [ "operator[]", "classnlohmann_1_1detail_1_1iter__impl.html#ac0b9276f1102ed4b9cd3f5f56287e3ce", null ], + [ "key", "classnlohmann_1_1detail_1_1iter__impl.html#a15dfb2744fed2ef40c12a9e9a20d6dbc", null ], + [ "value", "classnlohmann_1_1detail_1_1iter__impl.html#ab447c50354c6611fa2ae0100ac17845c", null ], + [ "operator+", "classnlohmann_1_1detail_1_1iter__impl.html#a94108d1a7563e103534f23eb5c1ee175", null ], + [ "m_object", "classnlohmann_1_1detail_1_1iter__impl.html#aca84f84be598bdfaaddd23d928c42bbb", null ], + [ "m_it", "classnlohmann_1_1detail_1_1iter__impl.html#a8a86a7c0d4af0cc4ab345b6f0e13cdfa", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1iteration__proxy-members.html b/classnlohmann_1_1detail_1_1iteration__proxy-members.html new file mode 100644 index 0000000..c7416d7 --- /dev/null +++ b/classnlohmann_1_1detail_1_1iteration__proxy-members.html @@ -0,0 +1,75 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::iteration_proxy< IteratorType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::iteration_proxy< IteratorType >, including all inherited members.

+ + + + + +
begin() noexceptnlohmann::detail::iteration_proxy< IteratorType >inline
containernlohmann::detail::iteration_proxy< IteratorType >private
end() noexceptnlohmann::detail::iteration_proxy< IteratorType >inline
iteration_proxy(typename IteratorType::reference cont) noexceptnlohmann::detail::iteration_proxy< IteratorType >inlineexplicit
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1iteration__proxy.html b/classnlohmann_1_1detail_1_1iteration__proxy.html new file mode 100644 index 0000000..de8897c --- /dev/null +++ b/classnlohmann_1_1detail_1_1iteration__proxy.html @@ -0,0 +1,106 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::iteration_proxy< IteratorType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::iteration_proxy< IteratorType > Class Template Reference
+
+
+ +

proxy class for the items() function + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + +

+Public Member Functions

iteration_proxy (typename IteratorType::reference cont) noexcept
 construct iteration proxy from a container
 
+iteration_proxy_value< IteratorType > begin () noexcept
 return iterator begin (needed for range-based for)
 
+iteration_proxy_value< IteratorType > end () noexcept
 return iterator end (needed for range-based for)
 
+ + + + +

+Private Attributes

+IteratorType::reference container
 the container to iterate
 
+

Detailed Description

+

template<typename IteratorType>
+class nlohmann::detail::iteration_proxy< IteratorType >

+ +

proxy class for the items() function

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1iteration__proxy.js b/classnlohmann_1_1detail_1_1iteration__proxy.js new file mode 100644 index 0000000..b9b1031 --- /dev/null +++ b/classnlohmann_1_1detail_1_1iteration__proxy.js @@ -0,0 +1,7 @@ +var classnlohmann_1_1detail_1_1iteration__proxy = +[ + [ "iteration_proxy", "classnlohmann_1_1detail_1_1iteration__proxy.html#afe257e972e3b4658ef2e355f7389d4a5", null ], + [ "begin", "classnlohmann_1_1detail_1_1iteration__proxy.html#a379f86709d340c4ab1995539b8af623d", null ], + [ "end", "classnlohmann_1_1detail_1_1iteration__proxy.html#a90091f8492d23576edef72c5e8b9d4cf", null ], + [ "container", "classnlohmann_1_1detail_1_1iteration__proxy.html#a88c0532ba4a5de1d527b18053b24fd19", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1json__reverse__iterator-members.html b/classnlohmann_1_1detail_1_1json__reverse__iterator-members.html new file mode 100644 index 0000000..9ff6763 --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__reverse__iterator-members.html @@ -0,0 +1,86 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::json_reverse_iterator< Base > Member List
+
+ +
+ + + + diff --git a/classnlohmann_1_1detail_1_1json__reverse__iterator.html b/classnlohmann_1_1detail_1_1json__reverse__iterator.html new file mode 100644 index 0000000..4ef08fd --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__reverse__iterator.html @@ -0,0 +1,163 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::json_reverse_iterator< Base > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::json_reverse_iterator< Base > Class Template Reference
+
+
+ +

a template for a reverse iterator class + More...

+ +

#include <json.hpp>

+ +

Inherits reverse_iterator< Base >.

+ + + + + + + + +

+Public Types

+using base_iterator = std::reverse_iterator< Base >
 shortcut to the reverse iterator adapter
 
+using reference = typename Base::reference
 the reference type for the pointed-to element
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

json_reverse_iterator (const typename base_iterator::iterator_type &it) noexcept
 create reverse iterator from iterator
 
json_reverse_iterator (const base_iterator &it) noexcept
 create reverse iterator from base class
 
+const json_reverse_iterator operator++ (int)
 post-increment (it++)
 
+json_reverse_iteratoroperator++ ()
 pre-increment (++it)
 
+const json_reverse_iterator operator-- (int)
 post-decrement (it–)
 
+json_reverse_iteratoroperator-- ()
 pre-decrement (–it)
 
+json_reverse_iteratoroperator+= (difference_type i)
 add to iterator
 
+json_reverse_iterator operator+ (difference_type i) const
 add to iterator
 
+json_reverse_iterator operator- (difference_type i) const
 subtract from iterator
 
+difference_type operator- (const json_reverse_iterator &other) const
 return difference
 
+reference operator[] (difference_type n) const
 access to successor
 
+auto key () const -> decltype(std::declval< Base >().key())
 return the key of an object iterator
 
+reference value () const
 return the value of an iterator
 
+

Detailed Description

+

template<typename Base>
+class nlohmann::detail::json_reverse_iterator< Base >

+ +

a template for a reverse iterator class

+
Template Parameters
+ + +
Basethe base iterator type to reverse. Valid types are iterator (to create reverse_iterator) and const_iterator (to create const_reverse_iterator).
+
+
+

@requirement The class satisfies the following concept requirements:

    +
  • BidirectionalIterator: The iterator that can be moved can be moved in both directions (i.e. incremented and decremented).
  • +
  • OutputIterator: It is possible to write to the pointed-to element (only if Base is iterator).
  • +
+
Since
version 1.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1json__reverse__iterator.js b/classnlohmann_1_1detail_1_1json__reverse__iterator.js new file mode 100644 index 0000000..6553e29 --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__reverse__iterator.js @@ -0,0 +1,18 @@ +var classnlohmann_1_1detail_1_1json__reverse__iterator = +[ + [ "base_iterator", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a6b2ef1d632fe49bfcc22fbd1abd62395", null ], + [ "reference", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a42f51a69bac7b2aebb613b2164e457f1", null ], + [ "json_reverse_iterator", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a0246de16ece16293f2917dfa5d96e278", null ], + [ "json_reverse_iterator", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a6c2d025530114ed989188e8adfc8467e", null ], + [ "operator++", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a43dceb18497ff745d936068c77c8cd56", null ], + [ "operator++", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a26caf0069a50ce4ecb010a1453e883fc", null ], + [ "operator--", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a7bbf1ecd75b7a0a488608a2760237c9f", null ], + [ "operator--", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a2488d6a902103610943920ac49d12a04", null ], + [ "operator+=", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a4e5d0a3bee433104ef87366e00536e01", null ], + [ "operator+", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#aabf172b436988e2edde22f13f27caaed", null ], + [ "operator-", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a549c6eb10b6434eaf772f71d129a6d79", null ], + [ "operator-", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#aaaa6c0b1d74e74e35e5f7b56dfd6c5d1", null ], + [ "operator[]", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#a8ed9e445e03c49c46612eb7f7d55bb61", null ], + [ "key", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#adc648a641e8e9a1072c5abd56ad06401", null ], + [ "value", "classnlohmann_1_1detail_1_1json__reverse__iterator.html#ae22803d442d483041d17239615f83b58", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1json__sax__dom__parser-members.html b/classnlohmann_1_1detail_1_1json__sax__dom__parser-members.html new file mode 100644 index 0000000..2388146 --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__sax__dom__parser-members.html @@ -0,0 +1,78 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/classnlohmann_1_1detail_1_1json__sax__dom__parser.html b/classnlohmann_1_1detail_1_1json__sax__dom__parser.html new file mode 100644 index 0000000..188dbab --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__sax__dom__parser.html @@ -0,0 +1,207 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::json_sax_dom_parser< BasicJsonType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::json_sax_dom_parser< BasicJsonType > Class Template Reference
+
+
+ +

SAX implementation to create a JSON value from SAX events. + More...

+ +

#include <json.hpp>

+ + + + +

+Public Member Functions

 json_sax_dom_parser (BasicJsonType &r, const bool allow_exceptions_=true)
 
+ + + + +

+Private Member Functions

template<typename Value >
JSON_HEDLEY_RETURNS_NON_NULL BasicJsonType * handle_value (Value &&v)
 
+ + + + + + + + + + + + + + + + +

+Private Attributes

+BasicJsonType & root
 the parsed JSON value
 
+std::vector< BasicJsonType * > ref_stack {}
 stack to model hierarchy of values
 
+BasicJsonType * object_element = nullptr
 helper to hold the reference for the next object element
 
+bool errored = false
 whether a syntax error occurred
 
+const bool allow_exceptions = true
 whether to throw exceptions in case of errors
 
+

Detailed Description

+

template<typename BasicJsonType>
+class nlohmann::detail::json_sax_dom_parser< BasicJsonType >

+ +

SAX implementation to create a JSON value from SAX events.

+

This class implements the json_sax interface and processes the SAX events to create a JSON value which makes it basically a DOM parser. The structure or hierarchy of the JSON value is managed by the stack ref_stack which contains a pointer to the respective array or object for each recursion depth.

+

After successful parsing, the value that is passed by reference to the constructor contains the parsed value.

+
Template Parameters
+ + +
BasicJsonTypethe JSON type
+
+
+

Constructor & Destructor Documentation

+ +

◆ json_sax_dom_parser()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nlohmann::detail::json_sax_dom_parser< BasicJsonType >::json_sax_dom_parser (BasicJsonType & r,
const bool allow_exceptions_ = true 
)
+
+inlineexplicit
+
+
Parameters
+ + + +
[in,out]rreference to a JSON value that is manipulated while parsing
[in]allow_exceptions_whether parse errors yield exceptions
+
+
+ +
+
+

Member Function Documentation

+ +

◆ handle_value()

+ +
+
+
+template<typename BasicJsonType >
+
+template<typename Value >
+ + + + + +
+ + + + + + + + +
JSON_HEDLEY_RETURNS_NON_NULL BasicJsonType* nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value (Value && v)
+
+inlineprivate
+
+
Invariant
If the ref stack is empty, then the passed value will be the new root.
+
+If the ref stack contains a value, then it is an array or an object to which we can add elements
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1json__sax__dom__parser.js b/classnlohmann_1_1detail_1_1json__sax__dom__parser.js new file mode 100644 index 0000000..30a2513 --- /dev/null +++ b/classnlohmann_1_1detail_1_1json__sax__dom__parser.js @@ -0,0 +1,10 @@ +var classnlohmann_1_1detail_1_1json__sax__dom__parser = +[ + [ "json_sax_dom_parser", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#afc50fee0a92ce84afb84041ebbdfba80", null ], + [ "handle_value", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#aa1a5e21be350727cf61a101aa5c6796e", null ], + [ "root", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#aef0477277389e399d7128898841b71c0", null ], + [ "ref_stack", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#aa7526e7ae7be7f63803a23fd8cf36e5d", null ], + [ "object_element", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#a9c03c76d3a8e89c8928097ba0b92c2db", null ], + [ "errored", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#a31ccb472ed855e2f2370fd091d91aad7", null ], + [ "allow_exceptions", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html#ad0953e8d888339421d909d9016bc6e2c", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1lexer-members.html b/classnlohmann_1_1detail_1_1lexer-members.html new file mode 100644 index 0000000..c520805 --- /dev/null +++ b/classnlohmann_1_1detail_1_1lexer-members.html @@ -0,0 +1,98 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::lexer< BasicJsonType, InputAdapterType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::lexer< BasicJsonType, InputAdapterType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add(char_int_type c)nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
currentnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
decimal_point_charnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
error_messagenlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
get_codepoint()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
get_decimal_point() noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivatestatic
get_error_message() const noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_number_float() const noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_number_integer() const noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_number_unsigned() const noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_position() const noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_string()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
get_token_string() constnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
ianlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
ignore_commentsnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
next_byte_in_range(std::initializer_list< char_int_type > ranges)nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
next_ungetnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
positionnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
reset() noexceptnlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
scan_comment()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
scan_literal(const char_type *literal_text, const std::size_t length, token_type return_type)nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
scan_number()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
scan_string()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
skip_bom()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inline
token_buffernlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
token_stringnlohmann::detail::lexer< BasicJsonType, InputAdapterType >private
unget()nlohmann::detail::lexer< BasicJsonType, InputAdapterType >inlineprivate
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1lexer.html b/classnlohmann_1_1detail_1_1lexer.html new file mode 100644 index 0000000..cbc9136 --- /dev/null +++ b/classnlohmann_1_1detail_1_1lexer.html @@ -0,0 +1,529 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::lexer< BasicJsonType, InputAdapterType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::lexer< BasicJsonType, InputAdapterType > Class Template Reference
+
+
+ +

lexical analysis + More...

+ +

#include <json.hpp>

+ +

Inherits nlohmann::detail::lexer_base< BasicJsonType >.

+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr number_integer_t get_number_integer () const noexcept
 return integer value
 
+constexpr number_unsigned_t get_number_unsigned () const noexcept
 return unsigned integer value
 
+constexpr number_float_t get_number_float () const noexcept
 return floating-point value
 
+string_t & get_string ()
 return current string value (implicitly resets the token; useful only once)
 
+constexpr position_t get_position () const noexcept
 return position of last read token
 
std::string get_token_string () const
 
+constexpr const JSON_HEDLEY_RETURNS_NON_NULL char * get_error_message () const noexcept
 return syntax error message
 
bool skip_bom ()
 skip the UTF-8 byte order mark More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

int get_codepoint ()
 get codepoint from 4 hex characters following \u More...
 
bool next_byte_in_range (std::initializer_list< char_int_type > ranges)
 check if the next byte(s) are inside a given range More...
 
token_type scan_string ()
 scan a string literal More...
 
bool scan_comment ()
 scan a comment More...
 
token_type scan_number ()
 scan a number literal More...
 
token_type scan_literal (const char_type *literal_text, const std::size_t length, token_type return_type)
 
+void reset () noexcept
 reset token_buffer; current character is beginning of token
 
void unget ()
 unget current character (read it again on next get) More...
 
+void add (char_int_type c)
 add a character to token_buffer
 
+ + + + +

+Static Private Member Functions

+static JSON_HEDLEY_PURE char get_decimal_point () noexcept
 return the locale-dependent decimal point
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Attributes

+InputAdapterType ia
 input adapter
 
+const bool ignore_comments = false
 whether comments should be ignored (true) or signaled as errors (false)
 
+char_int_type current = std::char_traits<char_type>::eof()
 the current character
 
+bool next_unget = false
 whether the next get() call should just return current
 
+position_t position {}
 the start position of the current token
 
+std::vector< char_type > token_string {}
 raw input token string (for error messages)
 
+string_t token_buffer {}
 buffer for variable-length tokens (numbers, strings)
 
+const char * error_message = ""
 a description of occurred lexer errors
 
+const char_int_type decimal_point_char = '.'
 the decimal point
 
+

Detailed Description

+

template<typename BasicJsonType, typename InputAdapterType>
+class nlohmann::detail::lexer< BasicJsonType, InputAdapterType >

+ +

lexical analysis

+

This class organizes the lexical analysis during JSON deserialization.

+

Member Function Documentation

+ +

◆ get_codepoint()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
int nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::get_codepoint ()
+
+inlineprivate
+
+ +

get codepoint from 4 hex characters following \u

+

For input "\u c1 c2 c3 c4" the codepoint is: (c1 * 0x1000) + (c2 * 0x0100) + (c3 * 0x0010) + c4 = (c1 << 12) + (c2 << 8) + (c3 << 4) + (c4 << 0)

+

Furthermore, the possible characters '0'..'9', 'A'..'F', and 'a'..'f' must be converted to the integers 0x0..0x9, 0xA..0xF, 0xA..0xF, resp. The conversion is done by subtracting the offset (0x30, 0x37, and 0x57) between the ASCII value of the character and the desired integer value.

+
Returns
codepoint (0x0000..0xFFFF) or -1 in case of an error (e.g. EOF or non-hex character)
+ +
+
+ +

◆ next_byte_in_range()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::next_byte_in_range (std::initializer_list< char_int_type > ranges)
+
+inlineprivate
+
+ +

check if the next byte(s) are inside a given range

+

Adds the current byte and, for each passed range, reads a new byte and checks if it is inside the range. If a violation was detected, set up an error message and return false. Otherwise, return true.

+
Parameters
+ + +
[in]rangeslist of integers; interpreted as list of pairs of inclusive lower and upper bound, respectively
+
+
+
Precondition
The passed list ranges must have 2, 4, or 6 elements; that is, 1, 2, or 3 pairs. This precondition is enforced by an assertion.
+
Returns
true if and only if no range violation was detected
+ +
+
+ +

◆ scan_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
token_type nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::scan_string ()
+
+inlineprivate
+
+ +

scan a string literal

+

This function scans a string according to Sect. 7 of RFC 7159. While scanning, bytes are escaped and copied into buffer token_buffer. Then the function returns successfully, token_buffer is not null-terminated (as it may contain \0 bytes), and token_buffer.size() is the number of bytes in the string.

+
Returns
token_type::value_string if string could be successfully scanned, token_type::parse_error otherwise
+
Note
In case of errors, variable error_message contains a textual description.
+ +
+
+ +

◆ scan_comment()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::scan_comment ()
+
+inlineprivate
+
+ +

scan a comment

+
Returns
whether comment could be scanned successfully
+ +
+
+ +

◆ scan_number()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
token_type nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::scan_number ()
+
+inlineprivate
+
+ +

scan a number literal

+

This function scans a string according to Sect. 6 of RFC 7159.

+

The function is realized with a deterministic finite state machine derived from the grammar described in RFC 7159. Starting in state "init", the input is read and used to determined the next state. Only state "done" accepts the number. State "error" is a trap state to model errors. In the table below, "anything" means any character but the ones listed before.

+ + + + + + + + + + + + + + + + + + + + + +
state 0 1-9 e E + - . anything
init zero any1 [error] [error] minus [error] [error]
minus zero any1 [error] [error] [error] [error] [error]
zero done done exponent done done decimal1 done
any1 any1 any1 exponent done done decimal1 done
decimal1 decimal2 decimal2 [error] [error] [error] [error] [error]
decimal2 decimal2 decimal2 exponent done done done done
exponent any2 any2 [error] sign sign [error] [error]
sign any2 any2 [error] [error] [error] [error] [error]
any2 any2 any2 done done done done done
+

The state machine is realized with one label per state (prefixed with "scan_number_") and goto statements between them. The state machine contains cycles, but any cycle can be left when EOF is read. Therefore, the function is guaranteed to terminate.

+

During scanning, the read bytes are stored in token_buffer. This string is then converted to a signed integer, an unsigned integer, or a floating-point number.

+
Returns
token_type::value_unsigned, token_type::value_integer, or token_type::value_float if number could be successfully scanned, token_type::parse_error otherwise
+
Note
The scanner is independent of the current locale. Internally, the locale's decimal point is used instead of . to work with the locale-dependent converters.
+ +
+
+ +

◆ scan_literal()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
token_type nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::scan_literal (const char_type * literal_text,
const std::size_t length,
token_type return_type 
)
+
+inlineprivate
+
+
Parameters
+ + + + +
[in]literal_textthe literal text to expect
[in]lengththe length of the passed literal text
[in]return_typethe token type to return on success
+
+
+ +
+
+ +

◆ unget()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
void nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::unget ()
+
+inlineprivate
+
+ +

unget current character (read it again on next get)

+

We implement unget by setting variable next_unget to true. The input is not changed - we just simulate ungetting by modifying chars_read_total, chars_read_current_line, and token_string. The next call to get() will behave as if the unget character is read again.

+ +
+
+ +

◆ get_token_string()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
std::string nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::get_token_string () const
+
+inline
+
+

return the last read token (for errors only). Will never contain EOF (an arbitrary value that is not a valid char value, often -1), because 255 may legitimately occur. May contain NUL, which should be escaped.

+ +
+
+ +

◆ skip_bom()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + +
bool nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::skip_bom ()
+
+inline
+
+ +

skip the UTF-8 byte order mark

+
Returns
true iff there is no BOM or the correct BOM has been skipped
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1lexer.js b/classnlohmann_1_1detail_1_1lexer.js new file mode 100644 index 0000000..ebc0c99 --- /dev/null +++ b/classnlohmann_1_1detail_1_1lexer.js @@ -0,0 +1,29 @@ +var classnlohmann_1_1detail_1_1lexer = +[ + [ "get_codepoint", "classnlohmann_1_1detail_1_1lexer.html#adcf663a9878f58544790f1b6faad2e42", null ], + [ "next_byte_in_range", "classnlohmann_1_1detail_1_1lexer.html#af6fe701b8b3ca5f4a1b58db4658bdf87", null ], + [ "scan_string", "classnlohmann_1_1detail_1_1lexer.html#ab6352978e03ebcbc3cd618cd17142f26", null ], + [ "scan_comment", "classnlohmann_1_1detail_1_1lexer.html#afdc68706ad20be93977cd0f97043ea7f", null ], + [ "scan_number", "classnlohmann_1_1detail_1_1lexer.html#aab51a28e32c1957329141baff8eda1c4", null ], + [ "scan_literal", "classnlohmann_1_1detail_1_1lexer.html#ad89dec0ac0f4e851925a0499e043b18b", null ], + [ "reset", "classnlohmann_1_1detail_1_1lexer.html#a3bda093837339813916d11fb6e396606", null ], + [ "unget", "classnlohmann_1_1detail_1_1lexer.html#ab5811afe1c3efb0b769f7733b8373c6f", null ], + [ "add", "classnlohmann_1_1detail_1_1lexer.html#a36ffc3c33c3aea18291ead7a30fa7cc6", null ], + [ "get_number_integer", "classnlohmann_1_1detail_1_1lexer.html#a9535d0c72adbe9fe149853ebad5faee8", null ], + [ "get_number_unsigned", "classnlohmann_1_1detail_1_1lexer.html#abfc85ff04fcb1a5a8d8ea299a4c479e5", null ], + [ "get_number_float", "classnlohmann_1_1detail_1_1lexer.html#adb1a71f6a3e65ed32c452a318967b61e", null ], + [ "get_string", "classnlohmann_1_1detail_1_1lexer.html#a76875bb49a480763f6c48b8586f7e60e", null ], + [ "get_position", "classnlohmann_1_1detail_1_1lexer.html#a948c80b8bd8a3095b544e4655e1ca37e", null ], + [ "get_token_string", "classnlohmann_1_1detail_1_1lexer.html#ae000b7571480e528dee4b281f63d5b15", null ], + [ "get_error_message", "classnlohmann_1_1detail_1_1lexer.html#a5ff4935dd3a007659d17efd626b93982", null ], + [ "skip_bom", "classnlohmann_1_1detail_1_1lexer.html#a7cd7d55de2cd398660bc243c7229caf9", null ], + [ "ia", "classnlohmann_1_1detail_1_1lexer.html#a526d001dd91ec55b8032ba98466765c0", null ], + [ "ignore_comments", "classnlohmann_1_1detail_1_1lexer.html#a11528814930243028ac5b8901f4a17d7", null ], + [ "current", "classnlohmann_1_1detail_1_1lexer.html#a40bd85d91d377ade9ccb910e35776c22", null ], + [ "next_unget", "classnlohmann_1_1detail_1_1lexer.html#a40b108a0e45a7253f6ad85fbdaa6a262", null ], + [ "position", "classnlohmann_1_1detail_1_1lexer.html#a8a1bda107ce1622c0cb3174fa12155ea", null ], + [ "token_string", "classnlohmann_1_1detail_1_1lexer.html#a94aec416b883f742ba7f20bd16adb3c3", null ], + [ "token_buffer", "classnlohmann_1_1detail_1_1lexer.html#ac4eaf39567bd5f0750e5d7e913fb474d", null ], + [ "error_message", "classnlohmann_1_1detail_1_1lexer.html#a84cbcd8c897c98c2ce04d29a29bf84cc", null ], + [ "decimal_point_char", "classnlohmann_1_1detail_1_1lexer.html#a6f2fd5b4b6b153f11fc8f77213350073", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1other__error-members.html b/classnlohmann_1_1detail_1_1other__error-members.html new file mode 100644 index 0000000..40461bb --- /dev/null +++ b/classnlohmann_1_1detail_1_1other__error-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::other_error Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::other_error, including all inherited members.

+ + + + +
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1other__error.html b/classnlohmann_1_1detail_1_1other__error.html new file mode 100644 index 0000000..6ed2a81 --- /dev/null +++ b/classnlohmann_1_1detail_1_1other__error.html @@ -0,0 +1,122 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::other_error Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::other_error Class Reference
+
+
+ +

exception indicating other library errors + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::other_error:
+
+
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
- Public Attributes inherited from nlohmann::detail::exception
+const int id
 the id of the exception
 
+

Detailed Description

+

exception indicating other library errors

+

This exception is thrown in case of errors that cannot be classified with the other exception types.

+

Exceptions have ids 5xx.

+ + + + + +
name / id example message description
json.exception.other_error.501 unsuccessful: {"op":"test","path":"/baz", "value":"bar"} A JSON Patch operation 'test' failed. The unsuccessful operation is also printed.
+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+

@liveexample{The following code shows how an other_error exception can be caught.,other_error}

+
Since
version 3.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1other__error.png b/classnlohmann_1_1detail_1_1other__error.png new file mode 100644 index 0000000000000000000000000000000000000000..7f623276377edcd584e72388c312afbc6c15e265 GIT binary patch literal 660 zcmeAS@N?(olHy`uVBq!ia0vp^Yk@d`gBeK1)Us{^QW60^A+G=b{|7REyncGEBXI(d z1;z&s9Qe5TToRDWQ4-`A%m7pb0#{Fk7%?y~DSNs&hEy=Vo%^p^(zh2P&{}ZPR zU9ym0np(DJwTE2c!LK)_2RmQdpL2VguCkeDl#8RbryW<6=ckKP%zTwRf31joEO)nH z=elpp_dYL*y>&@#Y5LEF##+-auke@tZd+%1E!cYP9DV0AcdvbtNIW&F?S0;Y@4f ze;Z!ylwRbk?fKs`{_RPiqqlDrTdPtVa=~j-e^c0`nk|>}Zf{$w#K3OLFzsT{mj2^j zJG?Kx+ra&BovU;;Q^WKou>;j79ghC4s;rA~ zKQGP7o>h4>#BQtURI}*$<`!J1RX6iw3OzFrjWt;^tL5)C-%}R*vd-kV#|wQmIDhd+ z$zJETOO_RH=s&USO?yyr^S2*QcP}v&Ro%7VtSRqW-@meNEe_nwQQs^6@2*u&(7Y|; z@7KPc9UyMfSvBRW&Fp!1g^em!=HAX;dY55V_`;dF@xuG}Fl;Ybqqn=B`HaYBgm<@G fUN+^D)-UEPR+X-eru9F7Nr=JI)z4*}Q$iB}Z0tL~ literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1out__of__range-members.html b/classnlohmann_1_1detail_1_1out__of__range-members.html new file mode 100644 index 0000000..2620e36 --- /dev/null +++ b/classnlohmann_1_1detail_1_1out__of__range-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::out_of_range Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::out_of_range, including all inherited members.

+ + + + +
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1out__of__range.html b/classnlohmann_1_1detail_1_1out__of__range.html new file mode 100644 index 0000000..e2ea6ec --- /dev/null +++ b/classnlohmann_1_1detail_1_1out__of__range.html @@ -0,0 +1,138 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::out_of_range Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::out_of_range Class Reference
+
+
+ +

exception indicating access out of the defined range + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::out_of_range:
+
+
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
- Public Attributes inherited from nlohmann::detail::exception
+const int id
 the id of the exception
 
+

Detailed Description

+

exception indicating access out of the defined range

+

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

+

Exceptions have ids 4xx.

+ + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.out_of_range.401 array index 3 is out of range The provided array index i is larger than size-1.
json.exception.out_of_range.402 array index '-' (3) is out of range The special array index - in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it.
json.exception.out_of_range.403 key 'foo' not found The provided key was not found in the JSON object.
json.exception.out_of_range.404 unresolved reference token 'foo' A reference token in a JSON Pointer could not be resolved.
json.exception.out_of_range.405 JSON pointer has no parent The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
json.exception.out_of_range.406 number overflow parsing '10E1000' A parsed number could not be stored as without changing it to NaN or INF.
json.exception.out_of_range.407 number overflow serializing '9223372036854775808' UBJSON and BSON only support integer numbers up to 9223372036854775807. (until version 3.8.0)
json.exception.out_of_range.408 excessive array size: 8658170730974374167 The size (following #) of an UBJSON array or object exceeds the maximal capacity.
json.exception.out_of_range.409 BSON key cannot contain code point U+0000 (at byte 2) Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string
+

@liveexample{The following code shows how an out_of_range exception can be caught.,out_of_range}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1out__of__range.png b/classnlohmann_1_1detail_1_1out__of__range.png new file mode 100644 index 0000000000000000000000000000000000000000..9976e2434ffa6f9a02be39670b1389b8b00cb702 GIT binary patch literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^+krTMgBeKXd=!}uq$C1-LR|m<{|{vTc>VNRN8$t^ z3ycpOIPh`vxg;Q$qa?^Lm;tB=1g@S6F=Aj~vh#Ft45?szJNNCT)e1bW;!0o zIzn;5)yuc%9QH}OVe0#Nqr-ywnaeVz0(>T!%xQ|A^he~*q$kUh-(A_L@^Woe=jPJI zr&=@A-&Kd|wUq6ce95>laN9O_z0A9=^KaIvzLWpTweDYT;`KM1o?On`<*nu3U%hr# zwtnfh<53$5wO2~Gwru>h&hKQOe~{&_*R=s#VzxaCpMCqttr>sUe*47ts{WYm{sZQB zT#ux^HC(;=**4Yv2k+`-yEUf8Y82w1emG6YTrU zSHH5;)N5D!`^L`DbzPD7CH9i%;TzQ_Kf(yJS%};xmIcwQRmJhnN z3~W~x-043)<3V%L`5Vqn{ikHVb2cn*l0M*nkoUpz2W%gL3z&as?qCFZo}rE_kHMbR zykS17w8YXWml~89d0?tf7QMfpcW(J~i)i-HsP8q-3^7;3clNI~dAB?N?@?Q6|7=h= zt;@RWy1Hhrp5Slyz4!F5Ps;wYRC)WFTT^&>zTZ;W9woH>_^c~CJVh3F7)&dj`Etwe zm20kMCtUlz;c(oxpIcw%CZA8{+wuDG#oVgq>YwGdPxX|{ULU`+H*e=b+joaoei#3B z`0Kl}&FK&93+BIhzwBTCj{EQ5zj|{0w@Ul=o~MQP-?hIr2@l=wd~bL98@rpk=iX6g zsE_(q|7`k>>BeDyJ-5wEd;W(pui?&t;ucLK6T+p<%WF literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1output__stream__adapter-members.html b/classnlohmann_1_1detail_1_1output__stream__adapter-members.html new file mode 100644 index 0000000..f2ce497 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__stream__adapter-members.html @@ -0,0 +1,70 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::output_stream_adapter< CharType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::output_stream_adapter< CharType >, including all inherited members.

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__stream__adapter.html b/classnlohmann_1_1detail_1_1output__stream__adapter.html new file mode 100644 index 0000000..02ff6f1 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__stream__adapter.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::output_stream_adapter< CharType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::output_stream_adapter< CharType > Class Template Reference
+
+
+ +

output adapter for output streams + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::output_stream_adapter< CharType >:
+
+
+ +

Detailed Description

+

template<typename CharType>
+class nlohmann::detail::output_stream_adapter< CharType >

+ +

output adapter for output streams

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__stream__adapter.png b/classnlohmann_1_1detail_1_1output__stream__adapter.png new file mode 100644 index 0000000000000000000000000000000000000000..75d5e150ef7e9750ffa6f4892c117a50306a0060 GIT binary patch literal 1182 zcmeAS@N?(olHy`uVBq!ia0y~yU~~nt12~w0YT^vIy7~jr)J!y*;kE{6YRh9qU z?Y4CZ==o(oE8BM}LHjldBhKc*e21 zdVX59bOxLMq%SMogs(5}oSs*a@qOM@m94WRzsX(SzwqztqyPLS*Fs~*8Yd@3y_7fp{PD^BJrTw+x|{6g3!k3OyI$s3_PcB+;{@K`^M`j7?LD6AWbgEr z=kH7Txzgc#p-DKq0$x zM_>AG;oGk&p1bII{_E}OKT1XPUp-oKCv@q%z}PLbcP_D5+nu{BHegS*xUczE^IbAN z!fRhHcdtKVd$Qu}+E;HbrY?AQ@#c~Wqjk4q*6emnueiAQtf<~<$*!4SqHUul)rBn1 zP{~~3{WyA_%FB7ToF^}Ft8af4wxeC$_O{Esk9$RY4>7c?Ly>_9mr( zLqvq}4_6xlFeVw+1Es?q1rMwSN`?loe9+Qhst^@n1R6%E^j~?6WmAGQmQImTVr*fM z(?&DcP2}_m-$RQ#Utd1rZGMOEj@^BKTc)R*zh0Z@`))VG`JdUz37h83H$1vy9S-Ff+J1*-%gl&@v`3GzguK{S{KLf zk2RM6;khV4=B8xVwF4EB&w;6Dc{e=u%#HJ&^^I@$kykxYU1#6jUhrn|*`syad5_N) z`M#>!b>pTJ{@*pPiU0kQDI;}TYnk4m;-bx;`xa%Im0sLpEnT$7{o|t&H_smy;=6TA zF81bq(fQDI+D80s($C$?IHvTgi?7#=yK>Z%b9GU6n7I0f_t%e>efI?>rJ5K>QkoOs zeCErE#g@QvtdoY+{BNE{<{C}B7^;^ z{OI4^GX6i9CI0GmMYGPAw+yhGzAb*U=H%%N#;$ryJ)!a04Lj?mD;?Os04?I9G$FAz b@3s9g7Uw|L9Rk9@!i2%o)z4*}Q$iB}pQkh_ literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1output__string__adapter-members.html b/classnlohmann_1_1detail_1_1output__string__adapter-members.html new file mode 100644 index 0000000..ff66f25 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__string__adapter-members.html @@ -0,0 +1,70 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::output_string_adapter< CharType, StringType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::output_string_adapter< CharType, StringType >, including all inherited members.

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__string__adapter.html b/classnlohmann_1_1detail_1_1output__string__adapter.html new file mode 100644 index 0000000..03ff228 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__string__adapter.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::output_string_adapter< CharType, StringType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::output_string_adapter< CharType, StringType > Class Template Reference
+
+
+ +

output adapter for basic_string + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::output_string_adapter< CharType, StringType >:
+
+
+ +

Detailed Description

+

template<typename CharType, typename StringType = std::basic_string<CharType>>
+class nlohmann::detail::output_string_adapter< CharType, StringType >

+ +

output adapter for basic_string

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__string__adapter.png b/classnlohmann_1_1detail_1_1output__string__adapter.png new file mode 100644 index 0000000000000000000000000000000000000000..804be629f5c82a3b0cc0bee0b99be49d18803e14 GIT binary patch literal 1281 zcmeAS@N?(olHy`uVBq!ia0y~yV5|YM12~w0q^^P;Bao5^@CkAK|NlRb`Q!D|YaNLb zfGjXRaNxkl&F7MUT#k|;zhDNSA`rNGD#VC^fn|cHi(^OyjPa7~ z&y~taOM<`3JYViOC2dD``B|??S-m{BJ3hx>|MxYiQr+{vbKHmHf&avQy#McR`ib?E z_`~Iu>#uVb8$OvoC)qUSiJ5(V-|y+MSL2fO?@xC&P2lxCb9D#D-Y2O+@xi$~r{{O2 zOE2P?SDqHxZa85{_b!%t#jT&Jp3kcn<2k!wQkQ>XpzT%XYm4tLxwU9!-rXryUlaMx zn#_LBw_p6uf$eN+T`Ik$Yd;;Iv5j-~_O1EJ*4tiM-8{X>{B>Q_t1I4LH{E2jmc4Xt z+V>Uv&33<@RI=jzf%tdxm4CFl*8O7GH*@(+)A;83hs+O1{ZOl@RJ@^j@8EyYAMC0Z zw14(%*Wb{~Iba|3^IOEzeCh9UzuX_lfBEC6t$*u>yY2p+>yCYBx81Mzj`;`w*FRs~ z-fx||muHphGoI}>o7a}!_nCgZY(a+g?2~dQTh?js-=iRX_|x)-pp8anbZUyZR9-Gy^hx!l@zlNU zlk#4#Z_)Ss--HrB;D}25aoNOoVdku5$5}sge`OY6s)%EhKj3a}?IrN|Jz3Yo?80ux78r3ui-);I|XRg(?+S*ocRrSjJ z56|28EUwJ|>_2all%Cqm`R2#}o>to#e&+P|rvbbo2d^nqetP=Us*^K4El#(a<=ED( z?7DA^BCWI6&*=NKTVQG9{s~c)doQ22_r8)g!{wu<&Z^~AC#ts0-okGleDm?ub1~n@9x+Kb$kT%9xP4%hdz z^FB47GqTGJvMUpIPg@??6|{q=ey2y@197pRFYW$ZJ~~xA{-WmUt!+t(%$+>^^$ztyB9RC8R@N4~- z_~&?D-X!z3)^6MV<-T{`{4AZn_JQny_uv0G|8PAo?{4|-=j*F?vaNsDg)R6Ta=Yc` zwO#qkPG?&u-1cL?FzxlNvTY8(Yt$OI#oo5tY%TRevcT^=+o^w#|L`qhczRrirVywi>&`KWihb4V(@hJb6Mw< G&;$SwZF-ad literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1output__vector__adapter-members.html b/classnlohmann_1_1detail_1_1output__vector__adapter-members.html new file mode 100644 index 0000000..7567762 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__vector__adapter-members.html @@ -0,0 +1,70 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::output_vector_adapter< CharType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::output_vector_adapter< CharType >, including all inherited members.

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__vector__adapter.html b/classnlohmann_1_1detail_1_1output__vector__adapter.html new file mode 100644 index 0000000..26fe695 --- /dev/null +++ b/classnlohmann_1_1detail_1_1output__vector__adapter.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::output_vector_adapter< CharType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::output_vector_adapter< CharType > Class Template Reference
+
+
+ +

output adapter for byte vectors + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::output_vector_adapter< CharType >:
+
+
+ +

Detailed Description

+

template<typename CharType>
+class nlohmann::detail::output_vector_adapter< CharType >

+ +

output adapter for byte vectors

+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1output__vector__adapter.png b/classnlohmann_1_1detail_1_1output__vector__adapter.png new file mode 100644 index 0000000000000000000000000000000000000000..2db737cc2084a847486cb7b5f9142b168d7ea670 GIT binary patch literal 1164 zcmeAS@N?(olHy`uVBq!ia0y~yU~~nt12~w0KNPwRVAqXB?}m=O-->)LBCd4ZE^! zJk@h%-`%%bWP4Jz+r~{N{LM9HRql!`KD*!h;++$Hi#X%NeP<_~{#e_kKHJEuW&8O@ zU({|j$Xj-QTkt$zdVBhhS`q(OkCxmCUHUF8cFV~*L36Gh{kCInz@8{^U-PZzyK;Os zM_u;+{%=P0q|RBK&Iit86-+t~sk%)06pVUAI&AvvS@2taA*GO0K%R0X|yu4=n*c+oya#GT-}z{cWY)i9%PGZ_1c=OY!x^%Xz%H4OQQFCEPug)qi+nfXq$F zu4@NeW`fd;d(XSKI)%bHImRVc{AuZL@A>RBzgd3#p3SYzH`H$z?C~np-kmO@-TkLz zZqmL8)f;mbMFwp@a7W{tv+44TS-!C*xk=7_;+pev&cC^{Lt|FYagp@t`)B^X8o6cS z=W<^`4f*SlHp?r5#MMpLtcpMDbiDl4lt-1ZIh*tQZgU>}U3#%3xO(wvG1Hqf)pnL2 zzcbnA%AHkxarY_ibG4=Rs?}DA~%zswcnf^3CI`;#+ z!LMYI`KmShp6Ac5^ACC!!*oU@T`)oC_HBl=U#VRT{~OR^IBV&QAg_f}f_AO{&%mSL W>^iN@Z4t2OVDNPHb6Mw<&;$T2NGC@C literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1parse__error-members.html b/classnlohmann_1_1detail_1_1parse__error-members.html new file mode 100644 index 0000000..14a4fcd --- /dev/null +++ b/classnlohmann_1_1detail_1_1parse__error-members.html @@ -0,0 +1,76 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::parse_error Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::parse_error, including all inherited members.

+ + + + + + +
bytenlohmann::detail::parse_error
create(int id_, const position_t &pos, const std::string &what_arg)nlohmann::detail::parse_errorinlinestatic
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1parse__error.html b/classnlohmann_1_1detail_1_1parse__error.html new file mode 100644 index 0000000..00dd564 --- /dev/null +++ b/classnlohmann_1_1detail_1_1parse__error.html @@ -0,0 +1,237 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::parse_error Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::parse_error Class Reference
+
+
+ +

exception indicating a parse error + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::parse_error:
+
+
+ + + + + + +

+Static Public Member Functions

static parse_error create (int id_, const position_t &pos, const std::string &what_arg)
 create a parse error exception More...
 
+ + + + + + + + +

+Public Attributes

const std::size_t byte
 byte index of the parse error More...
 
- Public Attributes inherited from nlohmann::detail::exception
+const int id
 the id of the exception
 
+ + + + + +

+Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
+

Detailed Description

+

exception indicating a parse error

+

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.

+

Member byte holds the byte index of the last read character in the input file.

+

Exceptions have ids 1xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.parse_error.101 parse error at 2: unexpected end of input; expected string literal This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.
json.exception.parse_error.102 parse error at 14: missing or wrong low surrogate JSON uses the \uxxxx format to describe Unicode characters. Code points above above 0xFFFF are split into two \uxxxx entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point.
json.exception.parse_error.103 parse error: code points above 0x10FFFF are invalid Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.
json.exception.parse_error.104 parse error: JSON patch must be an array of objects RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.
json.exception.parse_error.105 parse error: operation must have string member 'op' An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors.
json.exception.parse_error.106 parse error: array index '01' must not begin with '0' An array index in a JSON Pointer (RFC 6901) may be 0 or any number without a leading 0.
json.exception.parse_error.107 parse error: JSON pointer must be empty or begin with '/' - was: 'foo' A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a / character.
json.exception.parse_error.108 parse error: escape character '~' must be followed with '0' or '1' In a JSON Pointer, only ~0 and ~1 are valid escape sequences.
json.exception.parse_error.109 parse error: array index 'one' is not a number A JSON Pointer array index must be a number.
json.exception.parse_error.110 parse error at 1: cannot read 2 bytes from vector When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.
json.exception.parse_error.112 parse error at 1: error reading CBOR; last byte: 0xF8 Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read.
json.exception.parse_error.113 parse error at 2: expected a CBOR string; last byte: 0x98 While parsing a map key, a value that is not a string has been read.
json.exception.parse_error.114 parse error: Unsupported BSON record type 0x0F The parsing of the corresponding BSON record type is not implemented (yet).
json.exception.parse_error.115 parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A A UBJSON high-precision number could not be parsed.
+
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
+

@liveexample{The following code shows how a parse_error exception can be caught.,parse_error}

+
See also
- exception for the base class of the library exceptions
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- type_error for exceptions indicating executing a member function with a wrong type
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+

Member Function Documentation

+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static parse_error nlohmann::detail::parse_error::create (int id_,
const position_tpos,
const std::string & what_arg 
)
+
+inlinestatic
+
+ +

create a parse error exception

+
Parameters
+ + + + +
[in]id_the id of the exception
[in]posthe position where the error occurred (or with chars_read_total=0 if the position cannot be determined)
[in]what_argthe explanatory string
+
+
+
Returns
parse_error object
+ +
+
+

Member Data Documentation

+ +

◆ byte

+ +
+
+ + + + +
const std::size_t nlohmann::detail::parse_error::byte
+
+ +

byte index of the parse error

+

The byte index of the last read character in the input file.

+
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1parse__error.js b/classnlohmann_1_1detail_1_1parse__error.js new file mode 100644 index 0000000..cbe3d51 --- /dev/null +++ b/classnlohmann_1_1detail_1_1parse__error.js @@ -0,0 +1,4 @@ +var classnlohmann_1_1detail_1_1parse__error = +[ + [ "byte", "classnlohmann_1_1detail_1_1parse__error.html#a9505aaa1ca943be927eec7cc579592ff", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1parse__error.png b/classnlohmann_1_1detail_1_1parse__error.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2ca818a5f84e858a2dadeed11f697d58c71058 GIT binary patch literal 681 zcmeAS@N?(olHy`uVBq!ia0vp^8-O@~gBeKn>GHn=QW60^A+G=b{|7REyncGEBXI(d z1;z&s9Qe5TToRDWQ4-`A%m7pb0#{Fk7%?y~S$MiQhEy=Vo%?XpVg(*I{`tnW|J~zO z2Pg&Xy_dV|w2xJtDX*tRZ$o|LwA7iNI+INLnIb0Hh#r{qWTp9m%mmL%OWitGmo7f# z`o+BAedtb(+{Ve5jFW@6ozlIYbvLc)YMtt}^~vYU>NB6t%k{Q z_Xa%=o3zu%CAl}Yc@p#e%=Y^sn|oim-M*u@t#{@5!YSXE{nKx}o?gnBqtq3eTy|Y> zhwjh72m5*#^YIt)N3W_)xO?S3lU?NDZFTob>?01FH@p@L58C_5Oz!X8!?M%HVzJy@~7wm00Zt)sw-DI-c{Q8mFg5stGl8%P|;dnmst4Z1m`6 zL-@U&9m|>ff|(A4Gx9uG$-wp@gn_w2tAP>dXNGxP2@L+M1`W%ZBn||lNS{_;Iwehr zGeHg}t6T85^mBiYQ26V|ZwpxW#j`$$(SLBYB5L-g(7ei9*K#91z1-n?WxaE|_aVDU zr=$F9b+3H1U17y{p!%zg`?_uS%jTT(Jrtw1XydJxKlf)ve0DjtL-*IK{+9*z(w$W^ zU2pnbPQ7x&>>0yVzAee$+&OnL?%6Bu-{|YI(dt3%5}i$N3=Xt^+|Tsxw#BOt3gur! zX5FZpyo-7Mnulfm5qsmofu$a}{_I@;<~*ljuQwU0*J8fv(9F8h7O wzopr0O@BpCjbBd literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1detail_1_1parser-members.html b/classnlohmann_1_1detail_1_1parser-members.html new file mode 100644 index 0000000..4b2c467 --- /dev/null +++ b/classnlohmann_1_1detail_1_1parser-members.html @@ -0,0 +1,79 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::parser< BasicJsonType, InputAdapterType > Member List
+
+ +
+ + + + diff --git a/classnlohmann_1_1detail_1_1parser.html b/classnlohmann_1_1detail_1_1parser.html new file mode 100644 index 0000000..e095102 --- /dev/null +++ b/classnlohmann_1_1detail_1_1parser.html @@ -0,0 +1,218 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::parser< BasicJsonType, InputAdapterType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::parser< BasicJsonType, InputAdapterType > Class Template Reference
+
+
+ +

syntax analysis + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + +

+Public Member Functions

parser (InputAdapterType &&adapter, const parser_callback_t< BasicJsonType > cb=nullptr, const bool allow_exceptions_=true, const bool skip_comments=false)
 a parser reading from an input adapter
 
void parse (const bool strict, BasicJsonType &result)
 public parser interface More...
 
bool accept (const bool strict=true)
 public accept interface More...
 
+ + + + +

+Private Member Functions

+token_type get_token ()
 get next token from lexer
 
+ + + + + + + + + + + + + +

+Private Attributes

+const parser_callback_t< BasicJsonType > callback = nullptr
 callback function
 
+token_type last_token = token_type::uninitialized
 the type of the last read token
 
+lexer_t m_lexer
 the lexer
 
+const bool allow_exceptions = true
 whether to throw exceptions in case of errors
 
+

Detailed Description

+

template<typename BasicJsonType, typename InputAdapterType>
+class nlohmann::detail::parser< BasicJsonType, InputAdapterType >

+ +

syntax analysis

+

This class implements a recursive descent parser.

+

Member Function Documentation

+ +

◆ parse()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse (const bool strict,
BasicJsonType & result 
)
+
+inline
+
+ +

public parser interface

+
Parameters
+ + + +
[in]strictwhether to expect the last token to be EOF
[in,out]resultparsed JSON value
+
+
+
Exceptions
+ + + + +
parse_error.101in case of an unexpected token
parse_error.102if to_unicode fails or surrogate error
parse_error.103if to_unicode fails
+
+
+ +
+
+ +

◆ accept()

+ +
+
+
+template<typename BasicJsonType , typename InputAdapterType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::detail::parser< BasicJsonType, InputAdapterType >::accept (const bool strict = true)
+
+inline
+
+ +

public accept interface

+
Parameters
+ + +
[in]strictwhether to expect the last token to be EOF
+
+
+
Returns
whether the input is a proper JSON text
+ +
+
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1parser.js b/classnlohmann_1_1detail_1_1parser.js new file mode 100644 index 0000000..7827f8b --- /dev/null +++ b/classnlohmann_1_1detail_1_1parser.js @@ -0,0 +1,11 @@ +var classnlohmann_1_1detail_1_1parser = +[ + [ "parser", "classnlohmann_1_1detail_1_1parser.html#a33b852bf63cba58310d9c0d1242cfb12", null ], + [ "parse", "classnlohmann_1_1detail_1_1parser.html#a75fb9145ea85f1ad9cc14f61981e1111", null ], + [ "accept", "classnlohmann_1_1detail_1_1parser.html#a39784a586867c05388cb0adca0fd72b5", null ], + [ "get_token", "classnlohmann_1_1detail_1_1parser.html#a1212088ee1e23633a76b2ed80514de79", null ], + [ "callback", "classnlohmann_1_1detail_1_1parser.html#a6bf70a72a1632ef55c0068557b1be37a", null ], + [ "last_token", "classnlohmann_1_1detail_1_1parser.html#a307ed42d5f31a9c5bec991ceee87b0e7", null ], + [ "m_lexer", "classnlohmann_1_1detail_1_1parser.html#a01a73810f794c239aaf123aa2af7371d", null ], + [ "allow_exceptions", "classnlohmann_1_1detail_1_1parser.html#ab0dbaeaa6df00631072f902068c57750", null ] +]; \ No newline at end of file diff --git a/classnlohmann_1_1detail_1_1type__error-members.html b/classnlohmann_1_1detail_1_1type__error-members.html new file mode 100644 index 0000000..0951d14 --- /dev/null +++ b/classnlohmann_1_1detail_1_1type__error-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::type_error Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::type_error, including all inherited members.

+ + + + +
idnlohmann::detail::exception
mnlohmann::detail::exceptionprivate
what() const noexcept overridenlohmann::detail::exceptioninline
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1type__error.html b/classnlohmann_1_1detail_1_1type__error.html new file mode 100644 index 0000000..9abb844 --- /dev/null +++ b/classnlohmann_1_1detail_1_1type__error.html @@ -0,0 +1,154 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::type_error Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::type_error Class Reference
+
+
+ +

exception indicating executing a member function with a wrong type + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::type_error:
+
+
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
+const JSON_HEDLEY_RETURNS_NON_NULL char * what () const noexcept override
 returns the explanatory string
 
- Public Attributes inherited from nlohmann::detail::exception
+const int id
 the id of the exception
 
+

Detailed Description

+

exception indicating executing a member function with a wrong type

+

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

+

Exceptions have ids 3xx.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name / id example message description
json.exception.type_error.301 cannot create object from initializer list To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead.
json.exception.type_error.302 type must be object, but is array During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types.
json.exception.type_error.303 incompatible ReferenceType for get_ref, actual type is object To retrieve a reference to a value stored in a basic_json object with get_ref, the type of the reference must match the value type. For instance, for a JSON array, the ReferenceType must be array_t &.
json.exception.type_error.304 cannot use at() with string The at() member functions can only be executed for certain JSON types.
json.exception.type_error.305 cannot use operator[] with string The operator[] member functions can only be executed for certain JSON types.
json.exception.type_error.306 cannot use value() with string The value() member functions can only be executed for certain JSON types.
json.exception.type_error.307 cannot use erase() with string The erase() member functions can only be executed for certain JSON types.
json.exception.type_error.308 cannot use push_back() with string The push_back() and operator+= member functions can only be executed for certain JSON types.
json.exception.type_error.309 cannot use insert() with The insert() member functions can only be executed for certain JSON types.
json.exception.type_error.310 cannot use swap() with number The swap() member functions can only be executed for certain JSON types.
json.exception.type_error.311 cannot use emplace_back() with string The emplace_back() member function can only be executed for certain JSON types.
json.exception.type_error.312 cannot use update() with string The update() member functions can only be executed for certain JSON types.
json.exception.type_error.313 invalid value to unflatten The unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined.
json.exception.type_error.314 only objects can be unflattened The unflatten function only works for an object whose keys are JSON Pointers.
json.exception.type_error.315 values in object must be primitive The unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive.
json.exception.type_error.316 invalid UTF-8 byte at index 10: 0x7E The dump function only works with UTF-8 encoded strings; that is, if you assign a std::string to a JSON value, make sure it is UTF-8 encoded.
json.exception.type_error.317 JSON value cannot be serialized to requested format The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw true or null JSON object cannot be serialized to BSON)
+

@liveexample{The following code shows how a type_error exception can be caught.,type_error}

+
See also
- exception for the base class of the library exceptions
+
+- parse_error for exceptions indicating a parse error
+
+- invalid_iterator for exceptions indicating errors with iterators
+
+- out_of_range for exceptions indicating access out of the defined range
+
+- other_error for exceptions indicating other library errors
+
Since
version 3.0.0
+
+
+ + + + diff --git a/classnlohmann_1_1detail_1_1type__error.png b/classnlohmann_1_1detail_1_1type__error.png new file mode 100644 index 0000000000000000000000000000000000000000..e3d4cc3e91b2df8e0050a45835943f63b74f4ce8 GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0vp^D}XqFgBeKf3OV-)NJ#|vgt-3y{~yTw@%rhtj>HK- z78oBmaNy(Sb4frhM@f)hFauB#2wXiCV#L6}WajDO7*fIbcJA9vixqg<3TA>6@9VRR3T~Xz+|?10#URBtt>Z*=FWb9o zy*iU$_&47>ZNzzXf#V_LPXU`gDL>7)tMxH&KJ)3d>jJ+#zjXAX)zi!G(&QVDnP}cL zG_X%_8X}sGC$fxYbUyjFZ;b!_V&?jhN*Ym9>+b|&$(;;N$CL5iED*~ zV@)$=Ut-y!e|yEE=8d7Nw{Tza{hN8=q}B^2{Ra19FxBXb#y42!T*SF0A8q;r; zyfwMoA+$RA*9OLn-$i;SOD{aG&*567wCQTYs+YlA{wZ%~oO>lX1n9-fDQDlUt$zD> z!DQQ8jeg%>@LssIiRIK(sq!z9q1W9f$V8V$ADdD3w=%eI{eR=oVCIBg8jl zX*Dd|$GOT(@_=n^`Afz+4X9sVRsI6{^Zj*s#mUMI|1UoN4op=Hp00i_>zopr0J;7+ AxBvhE literal 0 HcmV?d00001 diff --git a/classnlohmann_1_1json__pointer-members.html b/classnlohmann_1_1json__pointer-members.html new file mode 100644 index 0000000..4200d5c --- /dev/null +++ b/classnlohmann_1_1json__pointer-members.html @@ -0,0 +1,102 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::json_pointer< BasicJsonType > Member List
+
+
+ +

This is the complete list of members for nlohmann::json_pointer< BasicJsonType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
array_index(const std::string &s)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
back() constnlohmann::json_pointer< BasicJsonType >inline
contains(const BasicJsonType *ptr) constnlohmann::json_pointer< BasicJsonType >inlineprivate
empty() const noexceptnlohmann::json_pointer< BasicJsonType >inline
escape(std::string s)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
flatten(const std::string &reference_string, const BasicJsonType &value, BasicJsonType &result)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
get_and_create(BasicJsonType &j) constnlohmann::json_pointer< BasicJsonType >inlineprivate
get_checked(BasicJsonType *ptr) constnlohmann::json_pointer< BasicJsonType >inlineprivate
get_checked(const BasicJsonType *ptr) constnlohmann::json_pointer< BasicJsonType >inlineprivate
get_unchecked(BasicJsonType *ptr) constnlohmann::json_pointer< BasicJsonType >inlineprivate
get_unchecked(const BasicJsonType *ptr) constnlohmann::json_pointer< BasicJsonType >inlineprivate
json_pointer(const std::string &s="")nlohmann::json_pointer< BasicJsonType >inlineexplicit
operator std::string() constnlohmann::json_pointer< BasicJsonType >inline
operator!=(json_pointer const &lhs, json_pointer const &rhs) noexceptnlohmann::json_pointer< BasicJsonType >friend
operator/(const json_pointer &lhs, const json_pointer &rhs)nlohmann::json_pointer< BasicJsonType >friend
operator/(const json_pointer &ptr, std::string token)nlohmann::json_pointer< BasicJsonType >friend
operator/(const json_pointer &ptr, std::size_t array_idx)nlohmann::json_pointer< BasicJsonType >friend
operator/=(const json_pointer &ptr)nlohmann::json_pointer< BasicJsonType >inline
operator/=(std::string token)nlohmann::json_pointer< BasicJsonType >inline
operator/=(std::size_t array_idx)nlohmann::json_pointer< BasicJsonType >inline
operator==(json_pointer const &lhs, json_pointer const &rhs) noexceptnlohmann::json_pointer< BasicJsonType >friend
parent_pointer() constnlohmann::json_pointer< BasicJsonType >inline
pop_back()nlohmann::json_pointer< BasicJsonType >inline
push_back(const std::string &token)nlohmann::json_pointer< BasicJsonType >inline
push_back(std::string &&token)nlohmann::json_pointer< BasicJsonType >inline
reference_tokensnlohmann::json_pointer< BasicJsonType >private
replace_substring(std::string &s, const std::string &f, const std::string &t)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
split(const std::string &reference_string)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
to_string() constnlohmann::json_pointer< BasicJsonType >inline
unescape(std::string &s)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
unflatten(const BasicJsonType &value)nlohmann::json_pointer< BasicJsonType >inlineprivatestatic
+
+ + + + diff --git a/classnlohmann_1_1json__pointer.html b/classnlohmann_1_1json__pointer.html new file mode 100644 index 0000000..4bd865f --- /dev/null +++ b/classnlohmann_1_1json__pointer.html @@ -0,0 +1,1403 @@ + + + + + + + +Renderd7-nightly: nlohmann::json_pointer< BasicJsonType > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::json_pointer< BasicJsonType > Class Template Reference
+
+
+ +

JSON Pointer. + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 json_pointer (const std::string &s="")
 create JSON pointer More...
 
std::string to_string () const
 return a string representation of the JSON pointer More...
 
 operator std::string () const
 return a string representation of the JSON pointer More...
 
json_pointeroperator/= (const json_pointer &ptr)
 append another JSON pointer at the end of this JSON pointer More...
 
json_pointeroperator/= (std::string token)
 append an unescaped reference token at the end of this JSON pointer More...
 
json_pointeroperator/= (std::size_t array_idx)
 append an array index at the end of this JSON pointer More...
 
json_pointer parent_pointer () const
 returns the parent of this JSON pointer More...
 
void pop_back ()
 remove last reference token More...
 
const std::string & back () const
 return last reference token More...
 
void push_back (const std::string &token)
 append an unescaped token at the end of the reference pointer More...
 
void push_back (std::string &&token)
 append an unescaped token at the end of the reference pointer More...
 
bool empty () const noexcept
 return whether pointer points to the root document More...
 
+ + + + + + + + + + + + + + + + +

+Private Member Functions

BasicJsonType & get_and_create (BasicJsonType &j) const
 create and return a reference to the pointed to value More...
 
BasicJsonType & get_unchecked (BasicJsonType *ptr) const
 return a reference to the pointed to value More...
 
BasicJsonType & get_checked (BasicJsonType *ptr) const
 
const BasicJsonType & get_unchecked (const BasicJsonType *ptr) const
 return a const reference to the pointed to value More...
 
const BasicJsonType & get_checked (const BasicJsonType *ptr) const
 
bool contains (const BasicJsonType *ptr) const
 
+ + + + + + + + + + + + + + + + + + + +

+Static Private Member Functions

static BasicJsonType::size_type array_index (const std::string &s)
 
static std::vector< std::string > split (const std::string &reference_string)
 split the string input to reference tokens More...
 
static void replace_substring (std::string &s, const std::string &f, const std::string &t)
 replace all occurrences of a substring by another string More...
 
+static std::string escape (std::string s)
 escape "~" to "~0" and "/" to "~1"
 
+static void unescape (std::string &s)
 unescape "~1" to tilde and "~0" to slash (order is important!)
 
static void flatten (const std::string &reference_string, const BasicJsonType &value, BasicJsonType &result)
 
static BasicJsonType unflatten (const BasicJsonType &value)
 
+ + + + +

+Private Attributes

+std::vector< std::string > reference_tokens
 the reference tokens
 
+ + + + + + + + + + + + + + + + +

+Friends

json_pointer operator/ (const json_pointer &lhs, const json_pointer &rhs)
 create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer More...
 
json_pointer operator/ (const json_pointer &ptr, std::string token)
 create a new JSON pointer by appending the unescaped token at the end of the JSON pointer More...
 
json_pointer operator/ (const json_pointer &ptr, std::size_t array_idx)
 create a new JSON pointer by appending the array-index-token at the end of the JSON pointer More...
 
bool operator== (json_pointer const &lhs, json_pointer const &rhs) noexcept
 compares two JSON pointers for equality More...
 
bool operator!= (json_pointer const &lhs, json_pointer const &rhs) noexcept
 compares two JSON pointers for inequality More...
 
+

Detailed Description

+

template<typename BasicJsonType>
+class nlohmann::json_pointer< BasicJsonType >

+ +

JSON Pointer.

+

A JSON pointer defines a string syntax for identifying a specific value within a JSON document. It can be used with functions at and operator[]. Furthermore, JSON pointers are the base for JSON patches.

+
See also
RFC 6901
+
Since
version 2.0.0
+

Constructor & Destructor Documentation

+ +

◆ json_pointer()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
nlohmann::json_pointer< BasicJsonType >::json_pointer (const std::string & s = "")
+
+inlineexplicit
+
+ +

create JSON pointer

+

Create a JSON pointer according to the syntax described in Section 3 of RFC6901.

+
Parameters
+ + +
[in]sstring representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value
+
+
+
Exceptions
+ + + +
parse_error.107if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below
parse_error.108if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below
+
+
+

@liveexample{The example shows the construction several valid JSON pointers as well as the exceptional behavior.,json_pointer}

+
Since
version 2.0.0
+ +
+
+

Member Function Documentation

+ +

◆ to_string()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
std::string nlohmann::json_pointer< BasicJsonType >::to_string () const
+
+inline
+
+ +

return a string representation of the JSON pointer

+
Invariant
For each JSON pointer ptr, it holds:
ptr == json_pointer(ptr.to_string());
+
+
Returns
a string representation of the JSON pointer
+

@liveexample{The example shows the result of to_string.,json_pointer__to_string}

+
Since
version 2.0.0
+ +
+
+ +

◆ operator std::string()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
nlohmann::json_pointer< BasicJsonType >::operator std::string () const
+
+inline
+
+ +

return a string representation of the JSON pointer

+
Invariant
For each JSON pointer ptr, it holds:
ptr == json_pointer(ptr.to_string());
+
+
Returns
a string representation of the JSON pointer
+

@liveexample{The example shows the result of to_string.,json_pointer__to_string}

+
Since
version 2.0.0
+ +
+
+ +

◆ operator/=() [1/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
json_pointer& nlohmann::json_pointer< BasicJsonType >::operator/= (const json_pointer< BasicJsonType > & ptr)
+
+inline
+
+ +

append another JSON pointer at the end of this JSON pointer

+
Parameters
+ + +
[in]ptrJSON pointer to append
+
+
+
Returns
JSON pointer with ptr appended
+

@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}

+

@complexity Linear in the length of ptr.

+
See also
operator/=(std::string) to append a reference token
+
+operator/=(std::size_t) to append an array index
+
+operator/(const json_pointer&, const json_pointer&) for a binary operator
+
Since
version 3.6.0
+ +
+
+ +

◆ operator/=() [2/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
json_pointer& nlohmann::json_pointer< BasicJsonType >::operator/= (std::string token)
+
+inline
+
+ +

append an unescaped reference token at the end of this JSON pointer

+
Parameters
+ + +
[in]tokenreference token to append
+
+
+
Returns
JSON pointer with token appended without escaping token
+

@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}

+

@complexity Amortized constant.

+
See also
operator/=(const json_pointer&) to append a JSON pointer
+
+operator/=(std::size_t) to append an array index
+
+operator/(const json_pointer&, std::size_t) for a binary operator
+
Since
version 3.6.0
+ +
+
+ +

◆ operator/=() [3/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
json_pointer& nlohmann::json_pointer< BasicJsonType >::operator/= (std::size_t array_idx)
+
+inline
+
+ +

append an array index at the end of this JSON pointer

+
Parameters
+ + +
[in]array_idxarray index to append
+
+
+
Returns
JSON pointer with array_idx appended
+

@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}

+

@complexity Amortized constant.

+
See also
operator/=(const json_pointer&) to append a JSON pointer
+
+operator/=(std::string) to append a reference token
+
+operator/(const json_pointer&, std::string) for a binary operator
+
Since
version 3.6.0
+ +
+
+ +

◆ parent_pointer()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
json_pointer nlohmann::json_pointer< BasicJsonType >::parent_pointer () const
+
+inline
+
+ +

returns the parent of this JSON pointer

+
Returns
parent of this JSON pointer; in case this JSON pointer is the root, the root itself is returned
+

@complexity Linear in the length of the JSON pointer.

+

@liveexample{The example shows the result of parent_pointer for different JSON Pointers.,json_pointer__parent_pointer}

+
Since
version 3.6.0
+ +
+
+ +

◆ pop_back()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
void nlohmann::json_pointer< BasicJsonType >::pop_back ()
+
+inline
+
+ +

remove last reference token

+
Precondition
not empty()
+

@liveexample{The example shows the usage of pop_back.,json_pointer__pop_back}

+

@complexity Constant.

+
Exceptions
+ + +
out_of_range.405if JSON pointer has no parent
+
+
+
Since
version 3.6.0
+ +
+
+ +

◆ back()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
const std::string& nlohmann::json_pointer< BasicJsonType >::back () const
+
+inline
+
+ +

return last reference token

+
Precondition
not empty()
+
Returns
last reference token
+

@liveexample{The example shows the usage of back.,json_pointer__back}

+

@complexity Constant.

+
Exceptions
+ + +
out_of_range.405if JSON pointer has no parent
+
+
+
Since
version 3.6.0
+ +
+
+ +

◆ push_back() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
void nlohmann::json_pointer< BasicJsonType >::push_back (const std::string & token)
+
+inline
+
+ +

append an unescaped token at the end of the reference pointer

+
Parameters
+ + +
[in]tokentoken to add
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows the result of push_back for different JSON Pointers.,json_pointer__push_back}

+
Since
version 3.6.0
+ +
+
+ +

◆ push_back() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
void nlohmann::json_pointer< BasicJsonType >::push_back (std::string && token)
+
+inline
+
+ +

append an unescaped token at the end of the reference pointer

+
Parameters
+ + +
[in]tokentoken to add
+
+
+

@complexity Amortized constant.

+

@liveexample{The example shows the result of push_back for different JSON Pointers.,json_pointer__push_back}

+
Since
version 3.6.0
+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
bool nlohmann::json_pointer< BasicJsonType >::empty () const
+
+inlinenoexcept
+
+ +

return whether pointer points to the root document

+
Returns
true iff the JSON pointer points to the root document
+

@complexity Constant.

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+

@liveexample{The example shows the result of empty for different JSON Pointers.,json_pointer__empty}

+
Since
version 3.6.0
+ +
+
+ +

◆ array_index()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
static BasicJsonType::size_type nlohmann::json_pointer< BasicJsonType >::array_index (const std::string & s)
+
+inlinestaticprivate
+
+
Parameters
+ + +
[in]sreference token to be converted into an array index
+
+
+
Returns
integer representation of s
+
Exceptions
+ + + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index begins not with a digit
out_of_range.404if string s could not be converted to an integer
out_of_range.410if an array index exceeds size_type
+
+
+ +
+
+ +

◆ get_and_create()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
BasicJsonType& nlohmann::json_pointer< BasicJsonType >::get_and_create (BasicJsonType & j) const
+
+inlineprivate
+
+ +

create and return a reference to the pointed to value

+

@complexity Linear in the number of reference tokens.

+
Exceptions
+ + + +
parse_error.109if array index is not a number
type_error.313if value cannot be unflattened
+
+
+ +
+
+ +

◆ get_unchecked() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
BasicJsonType& nlohmann::json_pointer< BasicJsonType >::get_unchecked (BasicJsonType * ptr) const
+
+inlineprivate
+
+ +

return a reference to the pointed to value

+
Note
This version does not throw if a value is not present, but tries to create nested values instead. For instance, calling this function with pointer "/this/that" on a null value is equivalent to calling operator[]("this").operator[]("that") on that value, effectively changing the null value to an object.
+
Parameters
+ + +
[in]ptra JSON value
+
+
+
Returns
reference to the JSON value pointed to by the JSON pointer
+

@complexity Linear in the length of the JSON pointer.

+
Exceptions
+ + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.404if the JSON pointer can not be resolved
+
+
+ +
+
+ +

◆ get_checked() [1/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
BasicJsonType& nlohmann::json_pointer< BasicJsonType >::get_checked (BasicJsonType * ptr) const
+
+inlineprivate
+
+
Exceptions
+ + + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.402if the array index '-' is used
out_of_range.404if the JSON pointer can not be resolved
+
+
+ +
+
+ +

◆ get_unchecked() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
const BasicJsonType& nlohmann::json_pointer< BasicJsonType >::get_unchecked (const BasicJsonType * ptr) const
+
+inlineprivate
+
+ +

return a const reference to the pointed to value

+
Parameters
+ + +
[in]ptra JSON value
+
+
+
Returns
const reference to the JSON value pointed to by the JSON pointer
+
Exceptions
+ + + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.402if the array index '-' is used
out_of_range.404if the JSON pointer can not be resolved
+
+
+ +
+
+ +

◆ get_checked() [2/2]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
const BasicJsonType& nlohmann::json_pointer< BasicJsonType >::get_checked (const BasicJsonType * ptr) const
+
+inlineprivate
+
+
Exceptions
+ + + + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.402if the array index '-' is used
out_of_range.404if the JSON pointer can not be resolved
+
+
+ +
+
+ +

◆ contains()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
bool nlohmann::json_pointer< BasicJsonType >::contains (const BasicJsonType * ptr) const
+
+inlineprivate
+
+
Exceptions
+ + + +
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
+
+
+ +
+
+ +

◆ split()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
static std::vector<std::string> nlohmann::json_pointer< BasicJsonType >::split (const std::string & reference_string)
+
+inlinestaticprivate
+
+ +

split the string input to reference tokens

+
Note
This function is only called by the json_pointer constructor. All exceptions below are documented there.
+
Exceptions
+ + + +
parse_error.107if the pointer is not empty or begins with '/'
parse_error.108if character '~' is not followed by '0' or '1'
+
+
+ +
+
+ +

◆ replace_substring()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void nlohmann::json_pointer< BasicJsonType >::replace_substring (std::string & s,
const std::string & f,
const std::string & t 
)
+
+inlinestaticprivate
+
+ +

replace all occurrences of a substring by another string

+
Parameters
+ + + + +
[in,out]sthe string to manipulate; changed so that all occurrences of f are replaced with t
[in]fthe substring to replace with t
[in]tthe string to replace f
+
+
+
Precondition
The search string f must not be empty. This precondition is enforced with an assertion.
+
Since
version 2.0.0
+ +
+
+ +

◆ flatten()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void nlohmann::json_pointer< BasicJsonType >::flatten (const std::string & reference_string,
const BasicJsonType & value,
BasicJsonType & result 
)
+
+inlinestaticprivate
+
+
Parameters
+ + + + +
[in]reference_stringthe reference string to the current value
[in]valuethe value to consider
[in,out]resultthe result object to insert values to
+
+
+
Note
Empty objects or arrays are flattened to null.
+ +
+
+ +

◆ unflatten()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
static BasicJsonType nlohmann::json_pointer< BasicJsonType >::unflatten (const BasicJsonType & value)
+
+inlinestaticprivate
+
+
Parameters
+ + +
[in]valueflattened JSON
+
+
+
Returns
unflattened JSON
+
Exceptions
+ + + + + +
parse_error.109if array index is not a number
type_error.314if value is not an object
type_error.315if object values are not primitive
type_error.313if value cannot be unflattened
+
+
+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator/ [1/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
json_pointer operator/ (const json_pointer< BasicJsonType > & lhs,
const json_pointer< BasicJsonType > & rhs 
)
+
+friend
+
+ +

create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer

+
Parameters
+ + + +
[in]lhsJSON pointer
[in]rhsJSON pointer
+
+
+
Returns
a new JSON pointer with rhs appended to lhs
+

@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}

+

@complexity Linear in the length of lhs and rhs.

+
See also
operator/=(const json_pointer&) to append a JSON pointer
+
Since
version 3.6.0
+ +
+
+ +

◆ operator/ [2/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
json_pointer operator/ (const json_pointer< BasicJsonType > & ptr,
std::string token 
)
+
+friend
+
+ +

create a new JSON pointer by appending the unescaped token at the end of the JSON pointer

+
Parameters
+ + + +
[in]ptrJSON pointer
[in]tokenreference token
+
+
+
Returns
a new JSON pointer with unescaped token appended to ptr
+

@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}

+

@complexity Linear in the length of ptr.

+
See also
operator/=(std::string) to append a reference token
+
Since
version 3.6.0
+ +
+
+ +

◆ operator/ [3/3]

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
json_pointer operator/ (const json_pointer< BasicJsonType > & ptr,
std::size_t array_idx 
)
+
+friend
+
+ +

create a new JSON pointer by appending the array-index-token at the end of the JSON pointer

+
Parameters
+ + + +
[in]ptrJSON pointer
[in]array_idxarray index
+
+
+
Returns
a new JSON pointer with array_idx appended to ptr
+

@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}

+

@complexity Linear in the length of ptr.

+
See also
operator/=(std::size_t) to append an array index
+
Since
version 3.6.0
+ +
+
+ +

◆ operator==

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator== (json_pointer< BasicJsonType > const & lhs,
json_pointer< BasicJsonType > const & rhs 
)
+
+friend
+
+ +

compares two JSON pointers for equality

+
Parameters
+ + + +
[in]lhsJSON pointer to compare
[in]rhsJSON pointer to compare
+
+
+
Returns
whether lhs is equal to rhs
+

@complexity Linear in the length of the JSON pointer

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+ +
+
+ +

◆ operator!=

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator!= (json_pointer< BasicJsonType > const & lhs,
json_pointer< BasicJsonType > const & rhs 
)
+
+friend
+
+ +

compares two JSON pointers for inequality

+
Parameters
+ + + +
[in]lhsJSON pointer to compare
[in]rhsJSON pointer to compare
+
+
+
Returns
whether lhs is not equal rhs
+

@complexity Linear in the length of the JSON pointer

+

@exceptionsafety No-throw guarantee: this function never throws exceptions.

+ +
+
+
+
+
json_pointer(const std::string &s="")
create JSON pointer
Definition: json.hpp:11582
+ + + + diff --git a/classnlohmann_1_1json__pointer.js b/classnlohmann_1_1json__pointer.js new file mode 100644 index 0000000..8624d63 --- /dev/null +++ b/classnlohmann_1_1json__pointer.js @@ -0,0 +1,27 @@ +var classnlohmann_1_1json__pointer = +[ + [ "json_pointer", "classnlohmann_1_1json__pointer.html#a7f32d7c62841f0c4a6784cf741a6e4f8", null ], + [ "to_string", "classnlohmann_1_1json__pointer.html#a3d4b15d32d096e3776c5d2c773b524f5", null ], + [ "operator std::string", "classnlohmann_1_1json__pointer.html#ae9015c658f99cf3d48a8563accc79988", null ], + [ "operator/=", "classnlohmann_1_1json__pointer.html#a7395bd0af29ac23fd3f21543c935cdfa", null ], + [ "operator/=", "classnlohmann_1_1json__pointer.html#abdd21567b2b1d69329af0f520335e68b", null ], + [ "operator/=", "classnlohmann_1_1json__pointer.html#a7de51480324eb1c5a89ed552cd699875", null ], + [ "parent_pointer", "classnlohmann_1_1json__pointer.html#afdaacce1edb7145e0434e014f0e8685a", null ], + [ "pop_back", "classnlohmann_1_1json__pointer.html#a4b1ee4d511ca195bed896a3da47e264c", null ], + [ "back", "classnlohmann_1_1json__pointer.html#a213bc67c32a30c68ac6bf06f5195d482", null ], + [ "push_back", "classnlohmann_1_1json__pointer.html#a697d12b5bd6205f8866691b166b7c7dc", null ], + [ "push_back", "classnlohmann_1_1json__pointer.html#ac228b13596d3c34185da9fe61b570194", null ], + [ "empty", "classnlohmann_1_1json__pointer.html#a649252bda4a2e75a0915b11a25d8bcc3", null ], + [ "get_and_create", "classnlohmann_1_1json__pointer.html#a583c726016f440ffe65553935c101ff5", null ], + [ "get_unchecked", "classnlohmann_1_1json__pointer.html#a577512ee6b7f030e8872b4d29fa5c3e5", null ], + [ "get_checked", "classnlohmann_1_1json__pointer.html#a366d68a67e40d86676d3bdb52e167294", null ], + [ "get_unchecked", "classnlohmann_1_1json__pointer.html#ad6a01f8e1556eef68e5a49b33fef1548", null ], + [ "get_checked", "classnlohmann_1_1json__pointer.html#a55a5bbbc3007e479607304a3e8cb9bf5", null ], + [ "contains", "classnlohmann_1_1json__pointer.html#a90d38e45e2d3add52d824bc55da8f772", null ], + [ "operator/", "classnlohmann_1_1json__pointer.html#a90a11fe6c7f37b1746a3ff9cb24b0d53", null ], + [ "operator/", "classnlohmann_1_1json__pointer.html#a926c9065dbed1bedc17857a813f7a46f", null ], + [ "operator/", "classnlohmann_1_1json__pointer.html#af5a4bc4f82113c271c9a0cd4d3b5f31c", null ], + [ "operator==", "classnlohmann_1_1json__pointer.html#a4667ef558c8c3f8a646bfda0c6654653", null ], + [ "operator!=", "classnlohmann_1_1json__pointer.html#a6779edcf28e6f018a3bbb29c0b4b5e1e", null ], + [ "reference_tokens", "classnlohmann_1_1json__pointer.html#a07a990a6838de4f38ee9d881e7b9fd61", null ] +]; \ No newline at end of file diff --git a/classsound-members.html b/classsound-members.html new file mode 100644 index 0000000..da0369d --- /dev/null +++ b/classsound-members.html @@ -0,0 +1,75 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
sound Member List
+
+
+ +

This is the complete list of members for sound, including all inherited members.

+ + + + + +
play()sound
sound(const std::string &path, int channel=1, bool toloop=false)sound
stop()sound
~sound()sound
+
+ + + + diff --git a/classsound.html b/classsound.html new file mode 100644 index 0000000..c062330 --- /dev/null +++ b/classsound.html @@ -0,0 +1,189 @@ + + + + + + + +Renderd7-nightly: sound Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
sound Class Reference
+
+
+ +

#include <sound.hpp>

+ + + + + + + + + + + +

+Public Member Functions

 sound (const std::string &path, int channel=1, bool toloop=false)
 Construct new Soundeffect. More...
 
 ~sound ()
 
void play ()
 
void stop ()
 
+

Detailed Description

+

Sound Class

+

Constructor & Destructor Documentation

+ +

◆ sound()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
sound::sound (const std::string & path,
int channel = 1,
bool toloop = false 
)
+
+ +

Construct new Soundeffect.

+
Parameters
+ + + + +
pathPath to the .wav file
channelthe channel 1-23
tolooptrue:loop the sound, false: don't loop
+
+
+ +
+
+ +

◆ ~sound()

+ +
+
+ + + + + + + +
sound::~sound ()
+
+

deconstruct the sound

+ +
+
+

Member Function Documentation

+ +

◆ play()

+ +
+
+ + + + + + + +
void sound::play ()
+
+

play the sound

+ +
+
+ +

◆ stop()

+ +
+
+ + + + + + + +
void sound::stop ()
+
+

stop the sound

+ +
+
+
+
+ + + + diff --git a/classsound.js b/classsound.js new file mode 100644 index 0000000..daafbd7 --- /dev/null +++ b/classsound.js @@ -0,0 +1,7 @@ +var classsound = +[ + [ "sound", "classsound.html#a2f69382c0ac7e2aa90d8278cc5b6bd70", null ], + [ "~sound", "classsound.html#a4a82f1972ceb6a2642bb2dcc067c3d72", null ], + [ "play", "classsound.html#abb2c33709eb822528889e32722fc1153", null ], + [ "stop", "classsound.html#adf45b194f1b8bcbaca3ee6eec0ecc71a", null ] +]; \ No newline at end of file diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..a95724822c105546f4ccf5841e317669623022ab GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VKAtX)Ar*{o?>@RLM z;!$8`)^O%y5t?*+2M??F@9g|oRfi87b=8}sQql{Y0{G9o{`aQc^XCE|E$gqv`*jxH f_tR&P@3)Fg3=y6GSu$-k&|C&jS3j3^P6 + + + + + + +Renderd7-nightly: Deprecated List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Deprecated List
+
+
+
+
Member nlohmann::basic_json::iterator_wrapper (reference ref) noexcept
+
This stream operator is deprecated and will be removed in future 4.0.0 of the library. Please use items() instead; that is, replace json::iterator_wrapper(j) with j.items().
+
Member nlohmann::basic_json::operator<< (basic_json &j, std::istream &i)
+
This stream operator is deprecated and will be removed in version 4.0.0 of the library. Please use operator>>(std::istream&, basic_json&) instead; that is, replace calls like j << i; with i >> j;.
+
Member nlohmann::basic_json::operator>> (const basic_json &j, std::ostream &o)
+
This stream operator is deprecated and will be removed in future 4.0.0 of the library. Please use operator<<(std::ostream&, const basic_json&) instead; that is, replace calls like j >> o; with o << j;.
+
+
+
+
+ + + + diff --git a/dir_1e00b99eb9247d8d1f0fc0398461b1b9.html b/dir_1e00b99eb9247d8d1f0fc0398461b1b9.html new file mode 100644 index 0000000..fe67ea3 --- /dev/null +++ b/dir_1e00b99eb9247d8d1f0fc0398461b1b9.html @@ -0,0 +1,73 @@ + + + + + + + +Renderd7-nightly: tools/rd7cc Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
rd7cc Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_397d9aeee4af8edecac90968d93b57df.html b/dir_397d9aeee4af8edecac90968d93b57df.html new file mode 100644 index 0000000..4102e1b --- /dev/null +++ b/dir_397d9aeee4af8edecac90968d93b57df.html @@ -0,0 +1,69 @@ + + + + + + + +Renderd7-nightly: external Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
external Directory Reference
+
+
+
+
+ + + + diff --git a/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html new file mode 100644 index 0000000..b817d37 --- /dev/null +++ b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html @@ -0,0 +1,69 @@ + + + + + + + +Renderd7-nightly: tools Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
tools Directory Reference
+
+
+
+
+ + + + diff --git a/dir_510d348b6a02c69273dfea2c9e531c0f.html b/dir_510d348b6a02c69273dfea2c9e531c0f.html new file mode 100644 index 0000000..41b5ee2 --- /dev/null +++ b/dir_510d348b6a02c69273dfea2c9e531c0f.html @@ -0,0 +1,69 @@ + + + + + + + +Renderd7-nightly: tools/rd7cc/source Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
source Directory Reference
+
+
+
+
+ + + + diff --git a/dir_7374381ecdb819c64ee9b6ea2bd3370d.html b/dir_7374381ecdb819c64ee9b6ea2bd3370d.html new file mode 100644 index 0000000..925f162 --- /dev/null +++ b/dir_7374381ecdb819c64ee9b6ea2bd3370d.html @@ -0,0 +1,69 @@ + + + + + + + +Renderd7-nightly: internal Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
internal Directory Reference
+
+
+
+
+ + + + diff --git a/doc.png b/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..18061c972511f6d084875bd7afcb18597cdca025 GIT binary patch literal 770 zcmV+d1O5DoP)JqjdV4mKLx;+jSGMhKP&n8aJ#ahQ&lQqVd3H6SCReyC)AGi1lW?diFoz z%7Fxv-NmS6R}vEy)(Dk?0{!XpzOzdL%$OL%!9&werf+9D-}iaG-)DL?TCEnqfnfq1 zBnK{F1MFq}pFdiydW~jvORt;tD)sfU@D?kYzzT-2qwP4EKAi5n0pN#KDwP0sQF$_3 z3U*|%!!fK-6f+pcaw3>cm|FQYfkX#RXO7C_SqwW+YD=W=0C?fqBEzyVOjEFAVPXb? zA{4`pByhTNY%M?6$9VBOwHe+$f9jhQ&kEkZ_`B4W>=JnqF$@U$q4UzF zgchwV%n^upl%(Q)m3Vsae-&~!ccG#zm?A=}DZ9_J_+X0q`--%xPlS?euPzZxX90HM zTR||>t9M;3FY8uW;zzBrqIay$1v5S3MOvF(E&q!t8;azMpH_it$NIuUz5CRuQP$>X zbh6ZqO}mY7p-AIhMPJ|8b`uBedi&0SHdyF9dyV+9(>j`&AFguf!X&AaBU&)jUBHed zQHg8SwgL9xUxDhkyjJF>*?9IR;oMO+UoA?SBC3TX2hU;0lSB&xVoQUjkHE(#St>{m zUm-j8JL&H)(|7#_nc;EzZ`>#K?FixCemxrjF&V%M-wITMlm{D&f9Zj0Y;I6nd!rK+ z&h^Xp^Hf)sC`?YtAcg=u@vT4&m#QF~{hIc{vt%#+N^asN-9P?J^zd<6|HfCp+;-)mx9KyNJUwt9E0Q<>54;7MP4`D? zdhLLEV#4CJtxHUb_Er8GD%m2g|)piaV^1poj507*qoM6N<$f;13q AUjP6A literal 0 HcmV?d00001 diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..a18a34c --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1771 @@ +/* The standard CSS for doxygen 1.8.17 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #DB9877; + color: #8C4724; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #F9EEE9; + border: 1px solid #E4B097; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #A05129; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #B95D30; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #E1AA8E; + color: #FFFFFF; + border: 1px double #DB9775; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #B95D30; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #B95D30; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #EDCDBC; + background-color: #FEFCFB; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FEFCFB; + border: 1px solid #EDCDBC; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #F9EEE9; + font-weight: bold; + border: 1px solid #EDCDBC; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #F9EEE9; + border: 1px solid #EDCDBC; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #FAF0EB; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #FCF8F6; + border-left: 2px solid #E1AA8E; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #E1AA8E; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #E4B097; +} + +th.dirtab { + background: #F9EEE9; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #C26232; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FDFAF8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #F5E2D9; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #B95D30; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #E5B49C; + border-left: 1px solid #E5B49C; + border-right: 1px solid #E5B49C; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #F6E6DE; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #B95D30; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #F9EEE9; + border: 1px solid #E4B097; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #E5B49C; + border-left: 1px solid #E5B49C; + border-right: 1px solid #E5B49C; + padding: 6px 0px 6px 0px; + color: #613119; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #F5E3DB; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #E5B49C; + border-left: 1px solid #E5B49C; + border-right: 1px solid #E5B49C; + padding: 6px 10px 2px 10px; + background-color: #FEFCFB; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #D5865E; + border-top:1px solid #CC6B3B; + border-left:1px solid #CC6B3B; + border-right:1px solid #EDCDBC; + border-bottom:1px solid #EDCDBC; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #E1AA8E; + border-bottom: 1px solid #E1AA8E; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #FCF8F6; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #A05129; +} + +.arrow { + color: #E1AA8E; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #D5865E; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #6F381C; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #763C1E; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #914925; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #E5B49C; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #E5B49C; + border-bottom: 1px solid #E5B49C; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #E5B49C; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #F6E6DE; + font-size: 90%; + color: #613119; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #E5B49C; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#DC9A79; + border:solid 1px #EDCBBA; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#8E4824; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #6A351B; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#D27D53; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#8E4824; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FDFAF8; + margin: 0px; + border-bottom: 1px solid #EDCDBC; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #CC6B3B; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #DEA080; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#864322; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #FCF6F3; + border: 1px solid #F3DED3; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #B95D30; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #763C1E; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #763C1E; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #914925; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #763C1E; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #914925; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.png b/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..74dd35744de2a00e39346e66d4d7c3c106709390 GIT binary patch literal 3811 zcmV<94jl1`P)vb51wAv7gNh_l4w3CQRL-Yu#ePWXHI6Nq= z9fa*&hjn~Op)HG+T{})G%37y-f7fm1zVDeDeD?D`dw4(HpX)nw-`DSW{l3@ryZ)_L zU0n?TbpU`rA?gD_9RT3ZiF(7j*a5(sKng%Sasi+Y0Px$fr}!QKn1uxZyaAG@^lTk0 zo=87?Q%!$iuL}SGbpU|hhBqZBc*K@`0K!OjwP%Ed0YDu9;6H;mB?#43F94th%*_Kp z9RT3fs8_!M0GLG`K>+Xv;pqG!m%@GyS{-?iG+=9}cXwdBcsGhOC0vlibaWXI+JzzAgTqmRMX zYIs--wpOE9W^yVcy}aSB_ACeHi^XNJGU#4^S@T*5igU7lOF46d7wr3w;wBzkI40ei zwdb`b$lIe`IJ>JB43oIncnm-j=dRrRFE@%%o_~ZTsGv{v?)>X3NY{qq=mvMP10an3 zS4x@Q`=nE#_nADohZDQ&_^04@CEOjX00={G=SX(t=6sV}M)F*ed+GD^X+dkWv}wWR zcz)jwxv6jVO?GZ%$CE_%fy_Q?KzoV3dtbcWtsk#{?`W3va^Xd0!^mc9J*>B>k<*<= zPnn*Yt*`qKU#?y(j{`e3aw1JlBysn9y=Odj`(SC^8~|R4Q9U}czs6bT zuCn(yvQ_#gY0#u~Cjh8{Uv6H3M&XaWm+vK#O$^y+)4xcO+V>gC>)hC}9AOEm86*#7 zJ{QQkE4#(-;^ogC-beU|eu$2m4aY$f`T3%xPZ6a#6is$XWT!~*|47wUv6`3bayDXG zR2(Z>6cwu2)L!ggymql){hGOT`o*Nc`fu+6K&@c$R0)gm^TQ{D$@VbWNr?#U@HIyT zGEeNqgG=9{W6(kXFv6ao{#bkN=MW-ky@4Q(;lz!ZRN&44@LKrv>cSDkHfK+#X4{mT z4!)LHR)E9_19A4}iZSe)Vs2ZWb=b)6id@4KoiaUb83wV2a{pA&A=g zbu{@+BENw|PFg_PS4KIp*v}r6LL84hw+?K=w7Kz_Wb041(m;u$c7&QcPyp~s7}i4s zc^U{(Eb{w6uQ6;h zrR1CiAPkjHALQvO+(=evDw{E=C)>?#631qR(U~Uz2;m=fwz6=?N4d-?2z9<{q*-jdmnq@>@`b016|Gw0dUTp)q6G3SQ z0SJSw_2GA?xzlL6x%D|a8VD-f`0rgVO`L@GbTNJ`Vsi=;>6Ov0-FYk@fG|e)^I(76 zqUY{7CIqc4!)LyOpsRQi!oD4wy_L3XM-D8lYceqDF_S|vcgNA_S)R_SzKMGT0>0jY(3mBxy`5X= z+h64xCTz6Q)BEx1XOZkeXDv)(DmVCKmpA#1L8N>ft5Yu3NSd7AvMjzAS1sS zG2yYpLCVB5sWBNQ$HFS`Oq?wK5vp40*mhFxzN?0O9{(wQ1D zhuZ+-Jz8l;t`zhQGHPS8;jZ?_Gt{dj;`L|GlwouJEsh}RICnB$E-d!`{~SO_ zW*}($*Czo8!|%i1>@S*Hi>mYV<^25jU(5ovk!aHAE>_Z0yn#;Oz>dw+g49B*Gto^X zU75oUQ~OTjG}`ObY+ zo{U^mTL5?+M0HFuS7SXvT64K^1dZ+HpdGn%hhTj65T?ypU_{WioFf2)F=o&Jj-dFF z@2NUZTPiH-UlEv>eL9--x#E+a;&nQDJ?+01&6hUs`H|7-Q3ig(3hYX{H%#KECWZRT zTMz$~pZh_RfcE}T{P)d0tD#8MWRPuWZT_<(e6jVyZ5hdPUzH~#$kY}9UI$Sflg!oF zK#;lIEZ9d?HBepkoEKJCy#N3sh~)r;QC(#$qwgB}uhAJhL>f2!{Welt$p=Py7EPKV zY@`=vZ$6-)`7i+Dk$dgTVY!n`&QCZE3o^1NIj3isW9t&jJKHtk?hby=OrEvbUe_#U zc>%zyz{pX*NsUeYGkx~36XfFVU{x5oW)}cq_z&lLsRO&C*$L9@$pIh?y6k_%kO7{AGp{mf|hRvAPmL$QMg_ClogI`(XDiOOKl|o;N|6c{|)gs zD|Y16Nz7)<=H1$CQ4Xp_WB#FV9uoloM$l>3;`8)f8KfVo*Ok&bw5ID|u}aSzfOXgR z&|<(S0K(AMfDx4WZcD4e+3M{8gmL#s7BV((!^Jz5tWIUzj<#wjo!r9-9mjo+n_sRr z*yowXW^qH~mI?%!)L{4AN!TeOC^b>;Eq5F`34kyvzdz6YTXpUZ07jVb@ksX9n4ntp z$pA%LKZQ|2b=nN>-H}?5n7kjiCt=RNkEl28$_^tR$#Fxv1$PKi8O4lMErh~vD8%`c zpFfNl@ypmwA4|6ERI?l;v;mIGm#zl@BOF;Y4e4iZ`jc*^DCgs8i{m7~>Z=O_A&HW1`YyQVlMDiT(mJOIEfDzD@tE@25f39j_%fi&NQW55-5{94l&-y08kqY_KYC!zqQc% z#HI-ZAWyXeJ_jh-Bg4h$M@N`zXO_~dfrf(ZDy?XsdMA980 zegejg;RxEWWgB}BY|*q~TEys&&}z^`0H}dmIUBKb=ONsE^fZK>VA9vA;^U17C|MVa z*n>rC@)<@x!~3_hNeD_<1wa^UqNd{L^>R;PMROR2bW9$StT;1iFwaG4Zqnol(O;o3FXy3=1U6?EAhHMRy-DhSj8Bpw|!A`*bn! zIgfO>7DhVBwZ$blcY;XnLh%Y`FIx>j7+DKvA-m|VjPzLU0E9s{a(zs8XBci}Mz%CH zRw=RS$d>W)`DWSYZ2kV^hi{X5AIy&V@u5wG=8Y|R8O1gDW3e;Hw#3X@m|RT+WfMW{ zzF;y#KHNG<7G_Eidsy;5hE2py8vvNYx(you2xC$}0JCR-3_YZrB|~~#q5$xJ1&XDJ zk#+^`^v!}PS za(S1ZyqUcUi*gFk*s=lJk*sI<8)Owvp0AkWgC?l1rcsT0_3HybttdUY4{MGUp<#pibM#Yo(|WZ=Q^)oI@E^ym z>sPTU{}%Vo69fQ%6|}W(gy&V&10+t(>OHt{j0k#J>=(aOp!D%G=qjGFj^IV)_`9}u z=45Wv#`14fIGoc}R5v}j_j#k1&K6BO2q*8!-JkHNS-muhjxZamODe)ggR<=)3IXIZ}*2K3r z!}ImEvXxI?RC&JL$l~v1kDv4NRt+1#rjZ5gnpon8@?VuSb(x?bAN>K~_Xe$xYjFmG z*rnbH0RA7~N5eq_fZvEy1P8(&b8KEdSBRioi#^5n*hj7&08j@2_>;i=O$h*X0DwOf Z{|j3a`HjYYgZ%&i002ovPDHLkV1hS@ZKwbM literal 0 HcmV?d00001 diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..ea0a7b3 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l?;!*r&G@QN)0S z;ul5`3mXxHT>Kzv?sl9vx3fEYyG80j$Id0U}=6xj%I%#lq`Z0RXJXRBw|%%uMUWkMF7Mhyg|% z^UT+G&*E)hwvoO1hxmpz*QuYnl*zIbh9QuipYG3uTTV7vGhDYXtlqTMuB(j$Hml0m zq=E0FJhF%K=mcxG?WQcYeJ`yS52+nGcIB@nYJZ!zQM<@o)OzVxl2Oz)YdIq0@3c{a zs{nGA2bh;TKfZSXv6%DgsMB2NNU2mX s(9NJA+ZCAMhx6 z6XsOV`U5Lk)M_b3OC`1@JHDCSvDxk>dawtu$lPx z2@C)TL-oTfUwQi!a2z=G8hEXS(3 zuHf8(rcnWO9hx3N-;ooc#F0v+0ssN5%uZKy!=%HaiX6HTMXa+IW=9XqOcv3$3=FFS zM#4gEc?oTH`6>WxgtoCw=N?S(A72+KLvNijbuA~iPA9xX)m&KbH}UKs29I9yDG4a} z{OEqgDwHY9Udni@v}T5^$Xp@|v%QBDbRyc`EtLp}wd%*$=o&xlQxZ_{>egAF%8$vq zs#?pBE?fG-Qs#}mR7HMu{tb%fZu=Aj2wvVi%@YGQbnjxtVHre~MRb%G+^wLyC+zCN z9E#^BTNAvPIK>nFLvD9am;6#7ey8g0-3|9hTm^M}Uw9Au!qjgFZk*)t>~?6>K`NLg zRroUous#GC#aUaNhkfx*Yl7$3k8{!gh`4tEr(s{IQByiA$QAM0(kGNI-)&7WbL|+9 zQRny$H~3+5^{o=Y@RfVMjixWTF+j86jmd=(HYND>ZU(^mP(f9|Fke{lHURiW;GxmO z>Q0XwWLB}vtf74@wR1O1=Jv4UfGv^eFEDCjX5~hil^4DSiJv7s6eZC08gl>u002ovPDHLkV1n^=GE4vf literal 0 HcmV?d00001 diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..5b9259e --- /dev/null +++ b/functions.html @@ -0,0 +1,101 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+ + + + diff --git a/functions_b.html b/functions_b.html new file mode 100644 index 0000000..e7c3fde --- /dev/null +++ b/functions_b.html @@ -0,0 +1,109 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_c.html b/functions_c.html new file mode 100644 index 0000000..9a38c4b --- /dev/null +++ b/functions_c.html @@ -0,0 +1,158 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+
+ + + + diff --git a/functions_d.html b/functions_d.html new file mode 100644 index 0000000..7a85a8a --- /dev/null +++ b/functions_d.html @@ -0,0 +1,84 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+
+ + + + diff --git a/functions_dup.js b/functions_dup.js new file mode 100644 index 0000000..75eaab9 --- /dev/null +++ b/functions_dup.js @@ -0,0 +1,26 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "j", "functions_j.html", null ], + [ "k", "functions_k.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "w", "functions_w.html", null ], + [ "~", "functions_~.html", null ] +]; \ No newline at end of file diff --git a/functions_e.html b/functions_e.html new file mode 100644 index 0000000..36172fa --- /dev/null +++ b/functions_e.html @@ -0,0 +1,109 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+
+ + + + diff --git a/functions_f.html b/functions_f.html new file mode 100644 index 0000000..c7a8f03 --- /dev/null +++ b/functions_f.html @@ -0,0 +1,102 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..525fe64 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,87 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func.js b/functions_func.js new file mode 100644 index 0000000..a8d290b --- /dev/null +++ b/functions_func.js @@ -0,0 +1,26 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "e", "functions_func_e.html", null ], + [ "f", "functions_func_f.html", null ], + [ "g", "functions_func_g.html", null ], + [ "h", "functions_func_h.html", null ], + [ "i", "functions_func_i.html", null ], + [ "j", "functions_func_j.html", null ], + [ "k", "functions_func_k.html", null ], + [ "l", "functions_func_l.html", null ], + [ "m", "functions_func_m.html", null ], + [ "n", "functions_func_n.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "v", "functions_func_v.html", null ], + [ "w", "functions_func_w.html", null ], + [ "~", "functions_func_~.html", null ] +]; \ No newline at end of file diff --git a/functions_func_b.html b/functions_func_b.html new file mode 100644 index 0000000..9551933 --- /dev/null +++ b/functions_func_b.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_c.html b/functions_func_c.html new file mode 100644 index 0000000..3dcc8df --- /dev/null +++ b/functions_func_c.html @@ -0,0 +1,121 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_d.html b/functions_func_d.html new file mode 100644 index 0000000..525f3ab --- /dev/null +++ b/functions_func_d.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- d -

+
+
+ + + + diff --git a/functions_func_e.html b/functions_func_e.html new file mode 100644 index 0000000..61aefbd --- /dev/null +++ b/functions_func_e.html @@ -0,0 +1,97 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_f.html b/functions_func_f.html new file mode 100644 index 0000000..078a628 --- /dev/null +++ b/functions_func_f.html @@ -0,0 +1,99 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- f -

+
+
+ + + + diff --git a/functions_func_g.html b/functions_func_g.html new file mode 100644 index 0000000..9cb33bb --- /dev/null +++ b/functions_func_g.html @@ -0,0 +1,195 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- g -

+
+
+ + + + diff --git a/functions_func_h.html b/functions_func_h.html new file mode 100644 index 0000000..a85df8b --- /dev/null +++ b/functions_func_h.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_i.html b/functions_func_i.html new file mode 100644 index 0000000..73aacf8 --- /dev/null +++ b/functions_func_i.html @@ -0,0 +1,128 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- i -

+
+
+ + + + diff --git a/functions_func_j.html b/functions_func_j.html new file mode 100644 index 0000000..c772c8d --- /dev/null +++ b/functions_func_j.html @@ -0,0 +1,80 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- j -

+
+
+ + + + diff --git a/functions_func_k.html b/functions_func_k.html new file mode 100644 index 0000000..d21ec58 --- /dev/null +++ b/functions_func_k.html @@ -0,0 +1,73 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_l.html b/functions_func_l.html new file mode 100644 index 0000000..f38884c --- /dev/null +++ b/functions_func_l.html @@ -0,0 +1,83 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- l -

+
+
+ + + + diff --git a/functions_func_m.html b/functions_func_m.html new file mode 100644 index 0000000..b469bf8 --- /dev/null +++ b/functions_func_m.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- m -

+
+
+ + + + diff --git a/functions_func_n.html b/functions_func_n.html new file mode 100644 index 0000000..4b981bb --- /dev/null +++ b/functions_func_n.html @@ -0,0 +1,83 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+ + + + diff --git a/functions_func_o.html b/functions_func_o.html new file mode 100644 index 0000000..7434527 --- /dev/null +++ b/functions_func_o.html @@ -0,0 +1,147 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- o -

+
+
+ + + + diff --git a/functions_func_p.html b/functions_func_p.html new file mode 100644 index 0000000..a19a578 --- /dev/null +++ b/functions_func_p.html @@ -0,0 +1,115 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_r.html b/functions_func_r.html new file mode 100644 index 0000000..720a198 --- /dev/null +++ b/functions_func_r.html @@ -0,0 +1,80 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+ + + + diff --git a/functions_func_s.html b/functions_func_s.html new file mode 100644 index 0000000..b6a1c16 --- /dev/null +++ b/functions_func_s.html @@ -0,0 +1,129 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_t.html b/functions_func_t.html new file mode 100644 index 0000000..bdefb2e --- /dev/null +++ b/functions_func_t.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- t -

+
+
+ + + + diff --git a/functions_func_u.html b/functions_func_u.html new file mode 100644 index 0000000..83f2548 --- /dev/null +++ b/functions_func_u.html @@ -0,0 +1,87 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_v.html b/functions_func_v.html new file mode 100644 index 0000000..975b561 --- /dev/null +++ b/functions_func_v.html @@ -0,0 +1,73 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_w.html b/functions_func_w.html new file mode 100644 index 0000000..5f3769c --- /dev/null +++ b/functions_func_w.html @@ -0,0 +1,122 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_~.html b/functions_func_~.html new file mode 100644 index 0000000..56a4812 --- /dev/null +++ b/functions_func_~.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- ~ -

+
+
+ + + + diff --git a/functions_g.html b/functions_g.html new file mode 100644 index 0000000..fd5fcac --- /dev/null +++ b/functions_g.html @@ -0,0 +1,195 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+
+ + + + diff --git a/functions_h.html b/functions_h.html new file mode 100644 index 0000000..b2eb3fc --- /dev/null +++ b/functions_h.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+
+ + + + diff --git a/functions_i.html b/functions_i.html new file mode 100644 index 0000000..420ef33 --- /dev/null +++ b/functions_i.html @@ -0,0 +1,160 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+
+ + + + diff --git a/functions_j.html b/functions_j.html new file mode 100644 index 0000000..21442b3 --- /dev/null +++ b/functions_j.html @@ -0,0 +1,84 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- j -

+
+
+ + + + diff --git a/functions_k.html b/functions_k.html new file mode 100644 index 0000000..b16ab75 --- /dev/null +++ b/functions_k.html @@ -0,0 +1,73 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+
+ + + + diff --git a/functions_l.html b/functions_l.html new file mode 100644 index 0000000..b415fd0 --- /dev/null +++ b/functions_l.html @@ -0,0 +1,92 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+
+ + + + diff --git a/functions_m.html b/functions_m.html new file mode 100644 index 0000000..6ccc07a --- /dev/null +++ b/functions_m.html @@ -0,0 +1,98 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+
+ + + + diff --git a/functions_n.html b/functions_n.html new file mode 100644 index 0000000..39ea679 --- /dev/null +++ b/functions_n.html @@ -0,0 +1,98 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+
+ + + + diff --git a/functions_o.html b/functions_o.html new file mode 100644 index 0000000..8c8cd51 --- /dev/null +++ b/functions_o.html @@ -0,0 +1,183 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+
+ + + + diff --git a/functions_p.html b/functions_p.html new file mode 100644 index 0000000..d0e47d5 --- /dev/null +++ b/functions_p.html @@ -0,0 +1,132 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+
+ + + + diff --git a/functions_r.html b/functions_r.html new file mode 100644 index 0000000..3253b86 --- /dev/null +++ b/functions_r.html @@ -0,0 +1,97 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+
+ + + + diff --git a/functions_rela.html b/functions_rela.html new file mode 100644 index 0000000..aba3e4c --- /dev/null +++ b/functions_rela.html @@ -0,0 +1,101 @@ + + + + + + + +Renderd7-nightly: Class Members - Related Functions + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_s.html b/functions_s.html new file mode 100644 index 0000000..75c70ee --- /dev/null +++ b/functions_s.html @@ -0,0 +1,139 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/functions_t.html b/functions_t.html new file mode 100644 index 0000000..1c7c91b --- /dev/null +++ b/functions_t.html @@ -0,0 +1,101 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+
+ + + + diff --git a/functions_type.html b/functions_type.html new file mode 100644 index 0000000..7471dc2 --- /dev/null +++ b/functions_type.html @@ -0,0 +1,236 @@ + + + + + + + +Renderd7-nightly: Class Members - Typedefs + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- i -

+ + +

- j -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+
+ + + + diff --git a/functions_u.html b/functions_u.html new file mode 100644 index 0000000..c9d6ae3 --- /dev/null +++ b/functions_u.html @@ -0,0 +1,87 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+
+ + + + diff --git a/functions_v.html b/functions_v.html new file mode 100644 index 0000000..917309d --- /dev/null +++ b/functions_v.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- v -

+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..e514faf --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,275 @@ + + + + + + + +Renderd7-nightly: Class Members - Variables + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

    +
  • filename +: Log +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+
+
+ + + + diff --git a/functions_w.html b/functions_w.html new file mode 100644 index 0000000..84cdf7b --- /dev/null +++ b/functions_w.html @@ -0,0 +1,122 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+
+ + + + diff --git a/functions_~.html b/functions_~.html new file mode 100644 index 0000000..2814abf --- /dev/null +++ b/functions_~.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..33b0769 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,109 @@ + + + + + + + +Renderd7-nightly: Class Hierarchy + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cnlohmann::adl_serializer< typename, typename >Default JSONSerializer template argument
 Cnlohmann::basic_jsonClass to store JSON values
 Cnlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >Deserialization of CBOR, MessagePack, and UBJSON values
 Cnlohmann::detail::binary_writer< BasicJsonType, CharType >Serialization to CBOR and MessagePack values
 Cnlohmann::byte_container_with_subtype< BinaryType >Internal type for a backed binary type
 Cnlohmann::detail::exceptionGeneral exception of the basic_json class
 Cnlohmann::detail::invalid_iteratorException indicating errors with iterators
 Cnlohmann::detail::other_errorException indicating other library errors
 Cnlohmann::detail::out_of_rangeException indicating access out of the defined range
 Cnlohmann::detail::parse_errorException indicating a parse error
 Cnlohmann::detail::type_errorException indicating executing a member function with a wrong type
 Cnlohmann::detail::file_input_adapter
 Cstd::hash< nlohmann::json >Hash value for JSON objects
 CRenderD7::ImageImage Class
 Cnlohmann::detail::input_stream_adapter
 Cnlohmann::detail::internal_iterator< BasicJsonType >Iterator value
 Cnlohmann::detail::internal_iterator< typename std::remove_const< BasicJsonType >::type >
 Cnlohmann::detail::iter_impl< BasicJsonType >Template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class
 Cnlohmann::detail::iteration_proxy< IteratorType >Proxy class for the items() function
 Cnlohmann::json_pointer< BasicJsonType >JSON Pointer
 Cnlohmann::detail::json_reverse_iterator< Base >Template for a reverse iterator class
 Cnlohmann::json_sax< BasicJsonType >SAX interface
 Cnlohmann::detail::json_sax_dom_parser< BasicJsonType >SAX implementation to create a JSON value from SAX events
 Cnlohmann::basic_json::json_valueJSON value
 Cstd::less<::nlohmann::detail::value_t >
 Cnlohmann::detail::lexer< BasicJsonType, InputAdapterType >Lexical analysis
 CLog
 Cnlohmann::ordered_map< Key, T, IgnoredLess, Allocator >
 Cnlohmann::detail::output_adapter_protocol< CharType >Abstract output adapter interface
 Cnlohmann::detail::output_stream_adapter< CharType >Output adapter for output streams
 Cnlohmann::detail::output_string_adapter< CharType, StringType >Output adapter for basic_string
 Cnlohmann::detail::output_vector_adapter< CharType >Output adapter for byte vectors
 Cnlohmann::detail::parser< BasicJsonType, InputAdapterType >Syntax analysis
 Cnlohmann::detail::position_tStruct to capture the start position of the current token
 CRenderD7::Sheet
 Csound
 CRenderD7::SpriteSprite Class
+
+
+
+ + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 0000000..868b798 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,42 @@ +var hierarchy = +[ + [ "nlohmann::adl_serializer< typename, typename >", "structnlohmann_1_1adl__serializer.html", null ], + [ "nlohmann::basic_json", "classnlohmann_1_1basic__json.html", null ], + [ "nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >", "classnlohmann_1_1detail_1_1binary__reader.html", null ], + [ "nlohmann::detail::binary_writer< BasicJsonType, CharType >", "classnlohmann_1_1detail_1_1binary__writer.html", null ], + [ "nlohmann::byte_container_with_subtype< BinaryType >", "classnlohmann_1_1byte__container__with__subtype.html", null ], + [ "nlohmann::detail::exception", "classnlohmann_1_1detail_1_1exception.html", [ + [ "nlohmann::detail::invalid_iterator", "classnlohmann_1_1detail_1_1invalid__iterator.html", null ], + [ "nlohmann::detail::other_error", "classnlohmann_1_1detail_1_1other__error.html", null ], + [ "nlohmann::detail::out_of_range", "classnlohmann_1_1detail_1_1out__of__range.html", null ], + [ "nlohmann::detail::parse_error", "classnlohmann_1_1detail_1_1parse__error.html", null ], + [ "nlohmann::detail::type_error", "classnlohmann_1_1detail_1_1type__error.html", null ] + ] ], + [ "nlohmann::detail::file_input_adapter", "classnlohmann_1_1detail_1_1file__input__adapter.html", null ], + [ "std::hash< nlohmann::json >", "structstd_1_1hash_3_01nlohmann_1_1json_01_4.html", null ], + [ "RenderD7::Image", "classRenderD7_1_1Image.html", null ], + [ "nlohmann::detail::input_stream_adapter", "classnlohmann_1_1detail_1_1input__stream__adapter.html", null ], + [ "nlohmann::detail::internal_iterator< BasicJsonType >", "structnlohmann_1_1detail_1_1internal__iterator.html", null ], + [ "nlohmann::detail::internal_iterator< typename std::remove_const< BasicJsonType >::type >", "structnlohmann_1_1detail_1_1internal__iterator.html", null ], + [ "nlohmann::detail::iter_impl< BasicJsonType >", "classnlohmann_1_1detail_1_1iter__impl.html", null ], + [ "nlohmann::detail::iteration_proxy< IteratorType >", "classnlohmann_1_1detail_1_1iteration__proxy.html", null ], + [ "nlohmann::json_pointer< BasicJsonType >", "classnlohmann_1_1json__pointer.html", null ], + [ "nlohmann::detail::json_reverse_iterator< Base >", "classnlohmann_1_1detail_1_1json__reverse__iterator.html", null ], + [ "nlohmann::json_sax< BasicJsonType >", "structnlohmann_1_1json__sax.html", null ], + [ "nlohmann::detail::json_sax_dom_parser< BasicJsonType >", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html", null ], + [ "nlohmann::basic_json::json_value", "unionnlohmann_1_1basic__json_1_1json__value.html", null ], + [ "std::less<::nlohmann::detail::value_t >", "structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html", null ], + [ "nlohmann::detail::lexer< BasicJsonType, InputAdapterType >", "classnlohmann_1_1detail_1_1lexer.html", null ], + [ "Log", "classLog.html", null ], + [ "nlohmann::ordered_map< Key, T, IgnoredLess, Allocator >", "structnlohmann_1_1ordered__map.html", null ], + [ "nlohmann::detail::output_adapter_protocol< CharType >", "structnlohmann_1_1detail_1_1output__adapter__protocol.html", [ + [ "nlohmann::detail::output_stream_adapter< CharType >", "classnlohmann_1_1detail_1_1output__stream__adapter.html", null ], + [ "nlohmann::detail::output_string_adapter< CharType, StringType >", "classnlohmann_1_1detail_1_1output__string__adapter.html", null ], + [ "nlohmann::detail::output_vector_adapter< CharType >", "classnlohmann_1_1detail_1_1output__vector__adapter.html", null ] + ] ], + [ "nlohmann::detail::parser< BasicJsonType, InputAdapterType >", "classnlohmann_1_1detail_1_1parser.html", null ], + [ "nlohmann::detail::position_t", "structnlohmann_1_1detail_1_1position__t.html", null ], + [ "RenderD7::Sheet", "classRenderD7_1_1Sheet.html", null ], + [ "sound", "classsound.html", null ], + [ "RenderD7::Sprite", "classRenderD7_1_1Sprite.html", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..d1496a1 --- /dev/null +++ b/index.html @@ -0,0 +1,81 @@ + + + + + + + +Renderd7-nightly: Main Page + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/namespaceRenderD7.html b/namespaceRenderD7.html new file mode 100644 index 0000000..75647e2 --- /dev/null +++ b/namespaceRenderD7.html @@ -0,0 +1,126 @@ + + + + + + + +Renderd7-nightly: RenderD7 Namespace Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
RenderD7 Namespace Reference
+
+
+ +

RenderD7. +More...

+ + + + + +

+Namespaces

 Lang
 RenderD7::Lang.
 
+ + + + + + + + + +

+Classes

class  Image
 Image Class. More...
 
class  Sheet
 
class  Sprite
 Sprite Class. More...
 
+ + + +

+Functions

void OnScreen (C3D_RenderTarget *target)
 
+

Detailed Description

+

Function Documentation

+ +

◆ OnScreen()

+ +
+
+ + + + + + + + +
void RenderD7::OnScreen (C3D_RenderTarget * target)
+
+

Set current RenderScreen

Parameters
+ + +
targetThe RenderTarget Top, Bottom
+
+
+ +
+
+
+
+ + + + diff --git a/namespaceRenderD7.js b/namespaceRenderD7.js new file mode 100644 index 0000000..577703c --- /dev/null +++ b/namespaceRenderD7.js @@ -0,0 +1,6 @@ +var namespaceRenderD7 = +[ + [ "Image", "classRenderD7_1_1Image.html", "classRenderD7_1_1Image" ], + [ "Sheet", "classRenderD7_1_1Sheet.html", "classRenderD7_1_1Sheet" ], + [ "Sprite", "classRenderD7_1_1Sprite.html", "classRenderD7_1_1Sprite" ] +]; \ No newline at end of file diff --git a/namespaceRenderD7_1_1Lang.html b/namespaceRenderD7_1_1Lang.html new file mode 100644 index 0000000..c321f4a --- /dev/null +++ b/namespaceRenderD7_1_1Lang.html @@ -0,0 +1,127 @@ + + + + + + + +Renderd7-nightly: RenderD7::Lang Namespace Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
RenderD7::Lang Namespace Reference
+
+
+ +

RenderD7::Lang. +More...

+ + + + + + + + + +

+Functions

+std::string getSys ()
 Get the 3ds System Language.
 
std::string get (const std::string &key)
 
void load (const std::string &lang)
 
+

Detailed Description

+

Function Documentation

+ +

◆ get()

+ +
+
+ + + + + + + + +
std::string RenderD7::Lang::get (const std::string & key)
+
+

Get a translated string key: The Key so the code can find your string

+ +
+
+ +

◆ load()

+ +
+
+ + + + + + + + +
void RenderD7::Lang::load (const std::string & lang)
+
+

Load the lang file from dir structure en/app.json for sample lang: the folder name en, fr, de ... . I prefer geSys()

+ +
+
+
+
+ + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 0000000..85a5219 --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,135 @@ + + + + + + + +Renderd7-nightly: Namespace Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+
+ + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 0000000..d92e582 --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,81 @@ + + + + + + + +Renderd7-nightly: Namespace Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
+ + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 0000000..c460df7 --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,111 @@ + + + + + + + +Renderd7-nightly: Namespace Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
+ + + + diff --git a/namespacemembers_type.html b/namespacemembers_type.html new file mode 100644 index 0000000..6347084 --- /dev/null +++ b/namespacemembers_type.html @@ -0,0 +1,75 @@ + + + + + + + +Renderd7-nightly: Namespace Members + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
+ + + + diff --git a/namespacenlohmann.html b/namespacenlohmann.html new file mode 100644 index 0000000..7aa253f --- /dev/null +++ b/namespacenlohmann.html @@ -0,0 +1,190 @@ + + + + + + + +Renderd7-nightly: nlohmann Namespace Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann Namespace Reference
+
+
+ +

namespace for Niels Lohmann +More...

+ + + + + +

+Namespaces

 detail
 detail namespace with internal helper functions
 
+ + + + + + + + + + + + + + + + + + +

+Classes

struct  adl_serializer
 default JSONSerializer template argument More...
 
class  basic_json
 a class to store JSON values More...
 
class  byte_container_with_subtype
 an internal type for a backed binary type More...
 
class  json_pointer
 JSON Pointer. More...
 
struct  json_sax
 SAX interface. More...
 
struct  ordered_map
 
+ + + + + + + +

+Typedefs

using json = basic_json<>
 default JSON class More...
 
using ordered_json = basic_json< nlohmann::ordered_map >
 ordered JSON class More...
 
+ + + + +

+Functions

NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string (const NLOHMANN_BASIC_JSON_TPL &j)
 user-defined to_string function for JSON values More...
 
+

Detailed Description

+

namespace for Niels Lohmann

+

namespace to hold default to_json function

+
See also
https://github.com/nlohmann
+
Since
version 1.0.0
+

Typedef Documentation

+ +

◆ json

+ +
+
+ + + + +
using nlohmann::json = typedef basic_json<>
+
+ +

default JSON class

+

This type is the default specialization of the basic_json class which uses the standard template types.

+
Since
version 1.0.0
+ +
+
+ +

◆ ordered_json

+ +
+
+ +

ordered JSON class

+

This type preserves the insertion order of object keys.

+
Since
version 3.9.0
+ +
+
+

Function Documentation

+ +

◆ to_string()

+ +
+
+ + + + + + + + +
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string nlohmann::to_string (const NLOHMANN_BASIC_JSON_TPL & j)
+
+ +

user-defined to_string function for JSON values

+

This function implements a user-defined to_string for JSON objects.

+
Parameters
+ + +
[in]ja JSON object
+
+
+
Returns
a std::string object
+ +
+
+
+
+ + + + diff --git a/namespacenlohmann.js b/namespacenlohmann.js new file mode 100644 index 0000000..51f8668 --- /dev/null +++ b/namespacenlohmann.js @@ -0,0 +1,10 @@ +var namespacenlohmann = +[ + [ "detail", "namespacenlohmann_1_1detail.html", "namespacenlohmann_1_1detail" ], + [ "adl_serializer", "structnlohmann_1_1adl__serializer.html", null ], + [ "basic_json", "classnlohmann_1_1basic__json.html", "classnlohmann_1_1basic__json" ], + [ "byte_container_with_subtype", "classnlohmann_1_1byte__container__with__subtype.html", "classnlohmann_1_1byte__container__with__subtype" ], + [ "json_pointer", "classnlohmann_1_1json__pointer.html", "classnlohmann_1_1json__pointer" ], + [ "json_sax", "structnlohmann_1_1json__sax.html", "structnlohmann_1_1json__sax" ], + [ "ordered_map", "structnlohmann_1_1ordered__map.html", null ] +]; \ No newline at end of file diff --git a/namespacenlohmann_1_1detail.html b/namespacenlohmann_1_1detail.html new file mode 100644 index 0000000..e655915 --- /dev/null +++ b/namespacenlohmann_1_1detail.html @@ -0,0 +1,498 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail Namespace Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail Namespace Reference
+
+
+ +

detail namespace with internal helper functions +More...

+ + + + + +

+Namespaces

 dtoa_impl
 implements the Grisu2 algorithm for binary to decimal floating-point conversion.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  binary_reader
 deserialization of CBOR, MessagePack, and UBJSON values More...
 
class  binary_writer
 serialization to CBOR and MessagePack values More...
 
class  exception
 general exception of the basic_json class More...
 
class  file_input_adapter
 
class  input_stream_adapter
 
struct  internal_iterator
 an iterator value More...
 
class  invalid_iterator
 exception indicating errors with iterators More...
 
class  iter_impl
 a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class. More...
 
class  iteration_proxy
 proxy class for the items() function More...
 
class  json_reverse_iterator
 a template for a reverse iterator class More...
 
class  json_sax_dom_parser
 SAX implementation to create a JSON value from SAX events. More...
 
class  lexer
 lexical analysis More...
 
class  other_error
 exception indicating other library errors More...
 
class  out_of_range
 exception indicating access out of the defined range More...
 
struct  output_adapter_protocol
 abstract output adapter interface More...
 
class  output_stream_adapter
 output adapter for output streams More...
 
class  output_string_adapter
 output adapter for basic_string More...
 
class  output_vector_adapter
 output adapter for byte vectors More...
 
class  parse_error
 exception indicating a parse error More...
 
class  parser
 syntax analysis More...
 
struct  position_t
 struct to capture the start position of the current token More...
 
class  type_error
 exception indicating executing a member function with a wrong type More...
 
+ + + + + +

+Typedefs

+template<typename CharType >
using output_adapter_t = std::shared_ptr< output_adapter_protocol< CharType > >
 a type to simplify interfaces
 
+ + + + + + + + + + + + + + + +

+Enumerations

enum  value_t : std::uint8_t {
+  value_t::null, +value_t::object, +value_t::array, +value_t::string, +
+  value_t::boolean, +value_t::number_integer, +value_t::number_unsigned, +value_t::number_float, +
+  value_t::binary, +value_t::discarded +
+ }
 the JSON type enumeration More...
 
enum  input_format_t
 the supported input formats
 
enum  cbor_tag_handler_t { cbor_tag_handler_t::error, +cbor_tag_handler_t::ignore + }
 how to treat CBOR tags More...
 
enum  parse_event_t : uint8_t {
+  parse_event_t::object_start, +parse_event_t::object_end, +parse_event_t::array_start, +parse_event_t::array_end, +
+  parse_event_t::key, +parse_event_t::value +
+ }
 
enum  error_handler_t { error_handler_t::strict, +error_handler_t::replace, +error_handler_t::ignore + }
 how to treat decoding errors More...
 
+ + + + + + + + + + + + +

+Functions

bool operator< (const value_t lhs, const value_t rhs) noexcept
 comparison operator for JSON types More...
 
template<typename BasicJsonType >
std::size_t hash (const BasicJsonType &j)
 hash a JSON value More...
 
template<typename FloatType >
JSON_HEDLEY_RETURNS_NON_NULL char * to_chars (char *first, const char *last, FloatType value)
 generates a decimal representation of the floating-point number value in [first, last). More...
 
+

Detailed Description

+

detail namespace with internal helper functions

+

This namespace collects functions that should not be exposed, implementations of some basic_json methods, and meta-programming helpers.

+
Since
version 2.1.0
+

Enumeration Type Documentation

+ +

◆ value_t

+ +
+
+ + + + + +
+ + + + +
enum nlohmann::detail::value_t : std::uint8_t
+
+strong
+
+ +

the JSON type enumeration

+

This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions basic_json::is_null(), basic_json::is_object(), basic_json::is_array(), basic_json::is_string(), basic_json::is_boolean(), basic_json::is_number() (with basic_json::is_number_integer(), basic_json::is_number_unsigned(), and basic_json::is_number_float()), basic_json::is_discarded(), basic_json::is_primitive(), and basic_json::is_structured() rely on it.

+
Note
There are three enumeration entries (number_integer, number_unsigned, and number_float), because the library distinguishes these three types for numbers: basic_json::number_unsigned_t is used for unsigned integers, basic_json::number_integer_t is used for signed integers, and basic_json::number_float_t is used for floating-point numbers or to approximate integers which do not fit in the limits of their respective type.
+
See also
basic_json::basic_json(const value_t value_type) – create a JSON value with the default value for a given type
+
Since
version 1.0.0
+ + + + + + + + + + + +
Enumerator
null 

null value

+
object 

object (unordered set of name/value pairs)

+
array 

array (ordered collection of values)

+
string 

string value

+
boolean 

boolean value

+
number_integer 

number value (signed integer)

+
number_unsigned 

number value (unsigned integer)

+
number_float 

number value (floating-point)

+
binary 

binary array (ordered collection of bytes)

+
discarded 

discarded by the parser callback function

+
+ +
+
+ +

◆ cbor_tag_handler_t

+ +
+
+ + + + + +
+ + + + +
enum nlohmann::detail::cbor_tag_handler_t
+
+strong
+
+ +

how to treat CBOR tags

+ + + +
Enumerator
error 

throw a parse_error exception in case of a tag

+
ignore 

ignore tags

+
+ +
+
+ +

◆ parse_event_t

+ +
+
+ + + + + +
+ + + + +
enum nlohmann::detail::parse_event_t : uint8_t
+
+strong
+
+ + + + + + + +
Enumerator
object_start 

the parser read { and started to process a JSON object

+
object_end 

the parser read } and finished processing a JSON object

+
array_start 

the parser read [ and started to process a JSON array

+
array_end 

the parser read ] and finished processing a JSON array

+
key 

the parser read a key of a value in an object

+
value 

the parser finished reading a JSON value

+
+ +
+
+ +

◆ error_handler_t

+ +
+
+ + + + + +
+ + + + +
enum nlohmann::detail::error_handler_t
+
+strong
+
+ +

how to treat decoding errors

+ + + + +
Enumerator
strict 

throw a type_error exception in case of invalid UTF-8

+
replace 

replace invalid UTF-8 sequences with U+FFFD

+
ignore 

ignore invalid UTF-8 sequences

+
+ +
+
+

Function Documentation

+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool nlohmann::detail::operator< (const value_t lhs,
const value_t rhs 
)
+
+inlinenoexcept
+
+ +

comparison operator for JSON types

+

Returns an ordering that is similar to Python:

    +
  • order: null < boolean < number < object < array < string < binary
  • +
  • furthermore, each type is not smaller than itself
  • +
  • discarded values are not comparable
  • +
  • binary is represented as a b"" string in python and directly comparable to a string; however, making a binary array directly comparable with a string would be surprising behavior in a JSON file.
  • +
+
Since
version 1.0.0
+ +
+
+ +

◆ hash()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + + + + +
std::size_t nlohmann::detail::hash (const BasicJsonType & j)
+
+ +

hash a JSON value

+

The hash function tries to rely on std::hash where possible. Furthermore, the type of the JSON value is taken into account to have different hash values for null, 0, 0U, and false, etc.

+
Template Parameters
+ + +
BasicJsonTypebasic_json specialization
+
+
+
Parameters
+ + +
jJSON value to hash
+
+
+
Returns
hash value of j
+ +
+
+ +

◆ to_chars()

+ +
+
+
+template<typename FloatType >
+ + + + + + + + + + + + + + + + + + + + + + + + +
JSON_HEDLEY_RETURNS_NON_NULL char* nlohmann::detail::to_chars (char * first,
const char * last,
FloatType value 
)
+
+ +

generates a decimal representation of the floating-point number value in [first, last).

+

The format of the resulting decimal representation is similar to printf's g format. Returns an iterator pointing past-the-end of the decimal representation.

+
Note
The input number must be finite, i.e. NaN's and Inf's are not supported.
+
+The buffer must be large enough.
+
+The result is NOT null-terminated.
+ +
+
+
+
+ + + + diff --git a/namespacenlohmann_1_1detail.js b/namespacenlohmann_1_1detail.js new file mode 100644 index 0000000..7eaa6db --- /dev/null +++ b/namespacenlohmann_1_1detail.js @@ -0,0 +1,25 @@ +var namespacenlohmann_1_1detail = +[ + [ "binary_reader", "classnlohmann_1_1detail_1_1binary__reader.html", "classnlohmann_1_1detail_1_1binary__reader" ], + [ "binary_writer", "classnlohmann_1_1detail_1_1binary__writer.html", "classnlohmann_1_1detail_1_1binary__writer" ], + [ "exception", "classnlohmann_1_1detail_1_1exception.html", "classnlohmann_1_1detail_1_1exception" ], + [ "file_input_adapter", "classnlohmann_1_1detail_1_1file__input__adapter.html", "classnlohmann_1_1detail_1_1file__input__adapter" ], + [ "input_stream_adapter", "classnlohmann_1_1detail_1_1input__stream__adapter.html", "classnlohmann_1_1detail_1_1input__stream__adapter" ], + [ "internal_iterator", "structnlohmann_1_1detail_1_1internal__iterator.html", "structnlohmann_1_1detail_1_1internal__iterator" ], + [ "invalid_iterator", "classnlohmann_1_1detail_1_1invalid__iterator.html", null ], + [ "iter_impl", "classnlohmann_1_1detail_1_1iter__impl.html", "classnlohmann_1_1detail_1_1iter__impl" ], + [ "iteration_proxy", "classnlohmann_1_1detail_1_1iteration__proxy.html", "classnlohmann_1_1detail_1_1iteration__proxy" ], + [ "json_reverse_iterator", "classnlohmann_1_1detail_1_1json__reverse__iterator.html", "classnlohmann_1_1detail_1_1json__reverse__iterator" ], + [ "json_sax_dom_parser", "classnlohmann_1_1detail_1_1json__sax__dom__parser.html", "classnlohmann_1_1detail_1_1json__sax__dom__parser" ], + [ "lexer", "classnlohmann_1_1detail_1_1lexer.html", "classnlohmann_1_1detail_1_1lexer" ], + [ "other_error", "classnlohmann_1_1detail_1_1other__error.html", null ], + [ "out_of_range", "classnlohmann_1_1detail_1_1out__of__range.html", null ], + [ "output_adapter_protocol", "structnlohmann_1_1detail_1_1output__adapter__protocol.html", null ], + [ "output_stream_adapter", "classnlohmann_1_1detail_1_1output__stream__adapter.html", null ], + [ "output_string_adapter", "classnlohmann_1_1detail_1_1output__string__adapter.html", null ], + [ "output_vector_adapter", "classnlohmann_1_1detail_1_1output__vector__adapter.html", null ], + [ "parse_error", "classnlohmann_1_1detail_1_1parse__error.html", "classnlohmann_1_1detail_1_1parse__error" ], + [ "parser", "classnlohmann_1_1detail_1_1parser.html", "classnlohmann_1_1detail_1_1parser" ], + [ "position_t", "structnlohmann_1_1detail_1_1position__t.html", "structnlohmann_1_1detail_1_1position__t" ], + [ "type_error", "classnlohmann_1_1detail_1_1type__error.html", null ] +]; \ No newline at end of file diff --git a/namespacenlohmann_1_1detail_1_1dtoa__impl.html b/namespacenlohmann_1_1detail_1_1dtoa__impl.html new file mode 100644 index 0000000..61458b1 --- /dev/null +++ b/namespacenlohmann_1_1detail_1_1dtoa__impl.html @@ -0,0 +1,457 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::dtoa_impl Namespace Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::dtoa_impl Namespace Reference
+
+
+ +

implements the Grisu2 algorithm for binary to decimal floating-point conversion. +More...

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename FloatType >
boundaries compute_boundaries (FloatType value)
 
cached_power get_cached_power_for_binary_exponent (int e)
 
int find_largest_pow10 (const std::uint32_t n, std::uint32_t &pow10)
 
void grisu2_digit_gen (char *buffer, int &length, int &decimal_exponent, diyfp M_minus, diyfp w, diyfp M_plus)
 
void grisu2 (char *buf, int &len, int &decimal_exponent, diyfp m_minus, diyfp v, diyfp m_plus)
 
template<typename FloatType >
void grisu2 (char *buf, int &len, int &decimal_exponent, FloatType value)
 
JSON_HEDLEY_RETURNS_NON_NULL char * append_exponent (char *buf, int e)
 appends a decimal representation of e to buf More...
 
JSON_HEDLEY_RETURNS_NON_NULL char * format_buffer (char *buf, int len, int decimal_exponent, int min_exp, int max_exp)
 prettify v = buf * 10^decimal_exponent More...
 
+

Detailed Description

+

implements the Grisu2 algorithm for binary to decimal floating-point conversion.

+

This implementation is a slightly modified version of the reference implementation which may be obtained from http://florian.loitsch.com/publications (bench.tar.gz).

+

The code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch.

+

For a detailed description of the algorithm see:

+

[1] Loitsch, "Printing Floating-Point Numbers Quickly and Accurately with + Integers", Proceedings of the ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation, PLDI 2010 [2] Burger, Dybvig, "Printing Floating-Point Numbers Quickly and Accurately", Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, PLDI 1996

+

Function Documentation

+ +

◆ compute_boundaries()

+ +
+
+
+template<typename FloatType >
+ + + + + + + + +
boundaries nlohmann::detail::dtoa_impl::compute_boundaries (FloatType value)
+
+

Compute the (normalized) diyfp representing the input number 'value' and its boundaries.

+
Precondition
value must be finite and positive
+ +
+
+ +

◆ get_cached_power_for_binary_exponent()

+ +
+
+ + + + + +
+ + + + + + + + +
cached_power nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent (int e)
+
+inline
+
+

For a normalized diyfp w = f * 2^e, this function returns a (normalized) cached power-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c satisfies (Definition 3.2 from [1])

 alpha <= e_c + e + q <= gamma.
+
+
+
+ +

◆ find_largest_pow10()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int nlohmann::detail::dtoa_impl::find_largest_pow10 (const std::uint32_t n,
std::uint32_t & pow10 
)
+
+inline
+
+

For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. For n == 0, returns 1 and sets pow10 := 1.

+ +
+
+ +

◆ grisu2_digit_gen()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nlohmann::detail::dtoa_impl::grisu2_digit_gen (char * buffer,
int & length,
int & decimal_exponent,
diyfp M_minus,
diyfp w,
diyfp M_plus 
)
+
+inline
+
+

Generates V = buffer * 10^decimal_exponent, such that M- <= V <= M+. M- and M+ must be normalized and share the same exponent -60 <= e <= -32.

+ +
+
+ +

◆ grisu2() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nlohmann::detail::dtoa_impl::grisu2 (char * buf,
int & len,
int & decimal_exponent,
diyfp m_minus,
diyfp v,
diyfp m_plus 
)
+
+inline
+
+

v = buf * 10^decimal_exponent len is the length of the buffer (number of decimal digits) The buffer must be large enough, i.e. >= max_digits10.

+ +
+
+ +

◆ grisu2() [2/2]

+ +
+
+
+template<typename FloatType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nlohmann::detail::dtoa_impl::grisu2 (char * buf,
int & len,
int & decimal_exponent,
FloatType value 
)
+
+

v = buf * 10^decimal_exponent len is the length of the buffer (number of decimal digits) The buffer must be large enough, i.e. >= max_digits10.

+ +
+
+ +

◆ append_exponent()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
JSON_HEDLEY_RETURNS_NON_NULL char* nlohmann::detail::dtoa_impl::append_exponent (char * buf,
int e 
)
+
+inline
+
+ +

appends a decimal representation of e to buf

+
Returns
a pointer to the element following the exponent.
+
Precondition
-1000 < e < 1000
+ +
+
+ +

◆ format_buffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JSON_HEDLEY_RETURNS_NON_NULL char* nlohmann::detail::dtoa_impl::format_buffer (char * buf,
int len,
int decimal_exponent,
int min_exp,
int max_exp 
)
+
+inline
+
+ +

prettify v = buf * 10^decimal_exponent

+

If v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point notation. Otherwise it will be printed in exponential notation.

+
Precondition
min_exp < 0
+
+max_exp > 0
+ +
+
+
+
+ + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 0000000..707aff3 --- /dev/null +++ b/namespaces.html @@ -0,0 +1,77 @@ + + + + + + + +Renderd7-nightly: Namespace List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Namespace List
+
+
+
Here is a list of all documented namespaces with brief descriptions:
+
[detail level 123]
+ + + + + +
 NnlohmannNamespace for Niels Lohmann
 NdetailDetail namespace with internal helper functions
 Ndtoa_implImplements the Grisu2 algorithm for binary to decimal floating-point conversion
 NRenderD7RenderD7
 NLangRenderD7::Lang
+
+
+
+ + + + diff --git a/namespaces_dup.js b/namespaces_dup.js new file mode 100644 index 0000000..888deda --- /dev/null +++ b/namespaces_dup.js @@ -0,0 +1,5 @@ +var namespaces_dup = +[ + [ "nlohmann", "namespacenlohmann.html", "namespacenlohmann" ], + [ "RenderD7", "namespaceRenderD7.html", "namespaceRenderD7" ] +]; \ No newline at end of file diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..d3af41ddfb28d45cfb53a9b8bcdaa327648ab552 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQX!r$jv*C{Z|8b*H5l-?sGm%X z)pWWlWPe>uJZX!=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlBP!Mpr$bL6q zCT~C+Z-C^}3>%KlNSor@^)qgsT+djh{PpvW2mLWw-WwkM>~~D5Vf`7s#^{;rG3oqE We5LQF6o>;&WAJqKb6Mw<&;$T!$SOhr literal 0 HcmV?d00001 diff --git a/pages.html b/pages.html new file mode 100644 index 0000000..800ea8e --- /dev/null +++ b/pages.html @@ -0,0 +1,73 @@ + + + + + + + +Renderd7-nightly: Related Pages + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+ + +
 Deprecated List
+
+
+
+ + + + diff --git a/resize.js b/resize.js new file mode 100644 index 0000000..a0bb5f4 --- /dev/null +++ b/resize.js @@ -0,0 +1,137 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..ee06cea64c87c6310b6a174e101bd81c0939fa96 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLnN|b5) z`20mifI;MqH*RiA49tCV@>ICb9xGvcf3P9^fLn4icSEmrg3Ip1Ns|_xEwIU(w*5xN z`END(Ki+2lm$tZf_PGD#n~&dqc(|;-{I2xZ-R=xORX96HMN6139Z!pV`~CU9{;ow9 zFJnw^i*I$?Y`R0g?DNN$Pe0U}uAM)(e(ye+f7kV=rbfQ4+r92v?#DM5RTL(Xf&ML& ZUwPe*CChx`bzqn + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::adl_serializer< typename, typename > Member List
+
+
+ +

This is the complete list of members for nlohmann::adl_serializer< typename, typename >, including all inherited members.

+ + + +
from_json(BasicJsonType &&j, ValueType &val) noexcept(noexcept(::nlohmann::from_json(std::forward< BasicJsonType >(j), val))) -> decltype(::nlohmann::from_json(std::forward< BasicJsonType >(j), val), void())nlohmann::adl_serializer< typename, typename >inlinestatic
to_json(BasicJsonType &j, ValueType &&val) noexcept(noexcept(::nlohmann::to_json(j, std::forward< ValueType >(val)))) -> decltype(::nlohmann::to_json(j, std::forward< ValueType >(val)), void())nlohmann::adl_serializer< typename, typename >inlinestatic
+
+ + + + diff --git a/structnlohmann_1_1adl__serializer.html b/structnlohmann_1_1adl__serializer.html new file mode 100644 index 0000000..07a9cec --- /dev/null +++ b/structnlohmann_1_1adl__serializer.html @@ -0,0 +1,198 @@ + + + + + + + +Renderd7-nightly: nlohmann::adl_serializer< typename, typename > Struct Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::adl_serializer< typename, typename > Struct Template Reference
+
+
+ +

default JSONSerializer template argument + More...

+ +

#include <json.hpp>

+ + + + + + + + + + +

+Static Public Member Functions

template<typename BasicJsonType , typename ValueType >
static auto from_json (BasicJsonType &&j, ValueType &val) noexcept(noexcept(::nlohmann::from_json(std::forward< BasicJsonType >(j), val))) -> decltype(::nlohmann::from_json(std::forward< BasicJsonType >(j), val), void())
 convert a JSON value to any value type More...
 
template<typename BasicJsonType , typename ValueType >
static auto to_json (BasicJsonType &j, ValueType &&val) noexcept(noexcept(::nlohmann::to_json(j, std::forward< ValueType >(val)))) -> decltype(::nlohmann::to_json(j, std::forward< ValueType >(val)), void())
 convert any value type to a JSON value More...
 
+

Detailed Description

+

template<typename, typename>
+struct nlohmann::adl_serializer< typename, typename >

+ +

default JSONSerializer template argument

+

This serializer ignores the template arguments and uses ADL (argument-dependent lookup) for serialization.

+

Member Function Documentation

+ +

◆ from_json()

+ +
+
+
+template<typename , typename >
+
+template<typename BasicJsonType , typename ValueType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static auto nlohmann::adl_serializer< typename, typename >::from_json (BasicJsonType && j,
ValueType & val 
) -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void()) +
+
+inlinestaticnoexcept
+
+ +

convert a JSON value to any value type

+

This function is usually called by the get() function of the basic_json class (either explicit or via conversion operators).

+
Parameters
+ + + +
[in]jJSON value to read from
[in,out]valvalue to write to
+
+
+ +
+
+ +

◆ to_json()

+ +
+
+
+template<typename , typename >
+
+template<typename BasicJsonType , typename ValueType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static auto nlohmann::adl_serializer< typename, typename >::to_json (BasicJsonType & j,
ValueType && val 
) -> decltype(::nlohmann::to_json(j, std::forward<ValueType>(val)), void()) +
+
+inlinestaticnoexcept
+
+ +

convert any value type to a JSON value

+

This function is usually called by the constructors of the basic_json class.

+
Parameters
+ + + +
[in,out]jJSON value to write to
[in]valvalue to read from
+
+
+ +
+
+
+
+ + + + diff --git a/structnlohmann_1_1detail_1_1internal__iterator-members.html b/structnlohmann_1_1detail_1_1internal__iterator-members.html new file mode 100644 index 0000000..9b19651 --- /dev/null +++ b/structnlohmann_1_1detail_1_1internal__iterator-members.html @@ -0,0 +1,74 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ + + + + + diff --git a/structnlohmann_1_1detail_1_1internal__iterator.html b/structnlohmann_1_1detail_1_1internal__iterator.html new file mode 100644 index 0000000..94ef5a9 --- /dev/null +++ b/structnlohmann_1_1detail_1_1internal__iterator.html @@ -0,0 +1,99 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::internal_iterator< BasicJsonType > Struct Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::internal_iterator< BasicJsonType > Struct Template Reference
+
+
+ +

an iterator value + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + +

+Public Attributes

+BasicJsonType::object_t::iterator object_iterator {}
 iterator for JSON objects
 
+BasicJsonType::array_t::iterator array_iterator {}
 iterator for JSON arrays
 
+primitive_iterator_t primitive_iterator {}
 generic iterator for all other types
 
+

Detailed Description

+

template<typename BasicJsonType>
+struct nlohmann::detail::internal_iterator< BasicJsonType >

+ +

an iterator value

+
Note
This structure could easily be a union, but MSVC currently does not allow unions members with complex constructors, see https://github.com/nlohmann/json/pull/105.
+
+
+ + + + diff --git a/structnlohmann_1_1detail_1_1internal__iterator.js b/structnlohmann_1_1detail_1_1internal__iterator.js new file mode 100644 index 0000000..dc4b50d --- /dev/null +++ b/structnlohmann_1_1detail_1_1internal__iterator.js @@ -0,0 +1,6 @@ +var structnlohmann_1_1detail_1_1internal__iterator = +[ + [ "object_iterator", "structnlohmann_1_1detail_1_1internal__iterator.html#a8cb0af3498061426c1d0a65ad6220408", null ], + [ "array_iterator", "structnlohmann_1_1detail_1_1internal__iterator.html#a8294a6e6f01b58e1cce8fbae66a50b5d", null ], + [ "primitive_iterator", "structnlohmann_1_1detail_1_1internal__iterator.html#a2b3bb45f968210e42c282017eeeb63a8", null ] +]; \ No newline at end of file diff --git a/structnlohmann_1_1detail_1_1output__adapter__protocol-members.html b/structnlohmann_1_1detail_1_1output__adapter__protocol-members.html new file mode 100644 index 0000000..631635c --- /dev/null +++ b/structnlohmann_1_1detail_1_1output__adapter__protocol-members.html @@ -0,0 +1,70 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::output_adapter_protocol< CharType > Member List
+
+
+ +

This is the complete list of members for nlohmann::detail::output_adapter_protocol< CharType >, including all inherited members.

+
+
+ + + + diff --git a/structnlohmann_1_1detail_1_1output__adapter__protocol.html b/structnlohmann_1_1detail_1_1output__adapter__protocol.html new file mode 100644 index 0000000..a4fff65 --- /dev/null +++ b/structnlohmann_1_1detail_1_1output__adapter__protocol.html @@ -0,0 +1,94 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::output_adapter_protocol< CharType > Struct Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::output_adapter_protocol< CharType > Struct Template Referenceabstract
+
+
+ +

abstract output adapter interface + More...

+ +

#include <json.hpp>

+
+ + Inheritance diagram for nlohmann::detail::output_adapter_protocol< CharType >:
+
+
+ +

Detailed Description

+

template<typename CharType>
+struct nlohmann::detail::output_adapter_protocol< CharType >

+ +

abstract output adapter interface

+
+
+ + + + diff --git a/structnlohmann_1_1detail_1_1output__adapter__protocol.png b/structnlohmann_1_1detail_1_1output__adapter__protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..8432b23faa2efbfa45235e8d53b5922fda29f907 GIT binary patch literal 2108 zcmcgtc{p3?8V{mP870%(R&lGA)@`drw@~X4X_*SuoM}rfp;HyX*j0_K40@%lx@`xg znrd-EXk)FlVwu(wqOnvWOfHF7B7;&1nUl`H^E~&zd!FaK-+R9Ieb2jmzu)s^x?#_$ zsc5OdU@$eO^JsS%44wh$ZU`kvIu5iHL5rr_1)QTyCWF-Vx#{5y`~yh)`nI*TiD~_Q z&?h3&9eW7|ImsW^2iyr5YK=kn|uV={PzLp}|xeNIS2t zVE$RYEzalka zc;TIZGFJ(qHeo_|%*Z5v+Z&E%`Us5)Jen?!;AY%F4zW}*AIoVT zt4+W4U_SoZ{UIaozd6XhYUxY#-Bi3gQL8|#CIAo)zvR4$?-nrt~Ge{f>3?j zEeoNT%Fhyv;wg^{e_?nv5Z22)O{^_DYllppmy9p8u`W~fMlQGr(~vH?uf~EWr2#ML zVfEswAYO?Sot zyQGnIB@7(Zpe?1OTN>R*ewPHR%>H{2oJZO1)whNtX159Ki_>8cg!CXN&8x!^8k4T! zNiYRP_-KxNBpSYvRI(lCbD_feQ$0cG_LE>;LaMbN@14r&}xv*X$0H(u!4h=J%jVy25mB`TVj<=+Ybkv4JxlkuE5L~8Cn>Qjo@36TfE!QP z#AMe?Uy{A%DI&iu0+)fC{n23KKSuzTR6>gdSn;++yEn837mN!?0?9_|gx3PJF*8 z=9-kzylL(Il1~!&gC7_D9?_6nG|#CW24@dP4bR=?4>4wmlqoI3=K@D#>SKq6tf*`% zeJ*h5#wYt@!#-3CYooo&mBP@@)51Chm&YI|A!-hGgI1nkWy>-y=JQ(YBX3i(I>?NU zKPuI|nP!xA)1g62xY2CWLOB;uaXE)*c_V^(aBfxkHMahb6=1-9GmSt&VI#&`ww=+M z#&4ps1pdH;RiN(AmHON0?H=Il_IDirok~#Xe@R(cs*QM>hh26Yw>X z0BV_piR33YPmfk+wjNv^J~}(>@YY*eGGf;_x)L*}%m|X*MMhn^B}p4`v`(TSzpLvdKi zn)aXx$nKvn72U@~dd!HAEQFv%6lQN^U3iH0;JMoNqnOBEt__Sf^>2&g=-kh7W8!~| zV_Q=TL+X@BJ>Dwexx-%PsW;STC%&iV!WP zA1O&q`FmG?HjWxfuyvIrL1^dj>f)v%Jf_t54L&((E3A$2=e|f-c7~votbU683}@4< zX*nygo0;w0L_gXpLRt^1CKm7BdH_+VIjzpn#^?)U-$j7sm5{I{5suG`o*O3)Km|;^ z<5#zD*M=;KPi+UF~Thryg2v1qEjZ_1yO C4H@nL literal 0 HcmV?d00001 diff --git a/structnlohmann_1_1detail_1_1position__t-members.html b/structnlohmann_1_1detail_1_1position__t-members.html new file mode 100644 index 0000000..0f6c27b --- /dev/null +++ b/structnlohmann_1_1detail_1_1position__t-members.html @@ -0,0 +1,75 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::detail::position_t Member List
+
+ +
+ + + + diff --git a/structnlohmann_1_1detail_1_1position__t.html b/structnlohmann_1_1detail_1_1position__t.html new file mode 100644 index 0000000..71e7c6a --- /dev/null +++ b/structnlohmann_1_1detail_1_1position__t.html @@ -0,0 +1,103 @@ + + + + + + + +Renderd7-nightly: nlohmann::detail::position_t Struct Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::detail::position_t Struct Reference
+
+
+ +

struct to capture the start position of the current token + More...

+ +

#include <json.hpp>

+ + + + + +

+Public Member Functions

+constexpr operator size_t () const
 conversion to size_t to preserve SAX interface
 
+ + + + + + + + + + +

+Public Attributes

+std::size_t chars_read_total = 0
 the total number of characters read
 
+std::size_t chars_read_current_line = 0
 the number of characters read in the current line
 
+std::size_t lines_read = 0
 the number of lines read
 
+

Detailed Description

+

struct to capture the start position of the current token

+
+
+ + + + diff --git a/structnlohmann_1_1detail_1_1position__t.js b/structnlohmann_1_1detail_1_1position__t.js new file mode 100644 index 0000000..37a4b47 --- /dev/null +++ b/structnlohmann_1_1detail_1_1position__t.js @@ -0,0 +1,7 @@ +var structnlohmann_1_1detail_1_1position__t = +[ + [ "operator size_t", "structnlohmann_1_1detail_1_1position__t.html#ac9ad1e0f143f162e2e0c979cd678d683", null ], + [ "chars_read_total", "structnlohmann_1_1detail_1_1position__t.html#a94cf85cd91d478c20ae143eba906ea1a", null ], + [ "chars_read_current_line", "structnlohmann_1_1detail_1_1position__t.html#a74df94563dd32102152ceb8c6d9041d8", null ], + [ "lines_read", "structnlohmann_1_1detail_1_1position__t.html#a4bbad8bc2c0d17c1b61c3ce729908b71", null ] +]; \ No newline at end of file diff --git a/structnlohmann_1_1json__sax-members.html b/structnlohmann_1_1json__sax-members.html new file mode 100644 index 0000000..1564092 --- /dev/null +++ b/structnlohmann_1_1json__sax-members.html @@ -0,0 +1,84 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::json_sax< BasicJsonType > Member List
+
+
+ +

This is the complete list of members for nlohmann::json_sax< BasicJsonType >, including all inherited members.

+ + + + + + + + + + + + + + +
binary(binary_t &val)=0nlohmann::json_sax< BasicJsonType >pure virtual
boolean(bool val)=0nlohmann::json_sax< BasicJsonType >pure virtual
end_array()=0nlohmann::json_sax< BasicJsonType >pure virtual
end_object()=0nlohmann::json_sax< BasicJsonType >pure virtual
key(string_t &val)=0nlohmann::json_sax< BasicJsonType >pure virtual
null()=0nlohmann::json_sax< BasicJsonType >pure virtual
number_float(number_float_t val, const string_t &s)=0nlohmann::json_sax< BasicJsonType >pure virtual
number_integer(number_integer_t val)=0nlohmann::json_sax< BasicJsonType >pure virtual
number_unsigned(number_unsigned_t val)=0nlohmann::json_sax< BasicJsonType >pure virtual
parse_error(std::size_t position, const std::string &last_token, const detail::exception &ex)=0nlohmann::json_sax< BasicJsonType >pure virtual
start_array(std::size_t elements)=0nlohmann::json_sax< BasicJsonType >pure virtual
start_object(std::size_t elements)=0nlohmann::json_sax< BasicJsonType >pure virtual
string(string_t &val)=0nlohmann::json_sax< BasicJsonType >pure virtual
+
+ + + + diff --git a/structnlohmann_1_1json__sax.html b/structnlohmann_1_1json__sax.html new file mode 100644 index 0000000..ba2edec --- /dev/null +++ b/structnlohmann_1_1json__sax.html @@ -0,0 +1,621 @@ + + + + + + + +Renderd7-nightly: nlohmann::json_sax< BasicJsonType > Struct Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::json_sax< BasicJsonType > Struct Template Referenceabstract
+
+
+ +

SAX interface. + More...

+ +

#include <json.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool null ()=0
 a null value was read More...
 
virtual bool boolean (bool val)=0
 a boolean value was read More...
 
virtual bool number_integer (number_integer_t val)=0
 an integer number was read More...
 
virtual bool number_unsigned (number_unsigned_t val)=0
 an unsigned integer number was read More...
 
virtual bool number_float (number_float_t val, const string_t &s)=0
 an floating-point number was read More...
 
virtual bool string (string_t &val)=0
 a string was read More...
 
virtual bool binary (binary_t &val)=0
 a binary string was read More...
 
virtual bool start_object (std::size_t elements)=0
 the beginning of an object was read More...
 
virtual bool key (string_t &val)=0
 an object key was read More...
 
virtual bool end_object ()=0
 the end of an object was read More...
 
virtual bool start_array (std::size_t elements)=0
 the beginning of an array was read More...
 
virtual bool end_array ()=0
 the end of an array was read More...
 
virtual bool parse_error (std::size_t position, const std::string &last_token, const detail::exception &ex)=0
 a parse error occurred More...
 
+

Detailed Description

+

template<typename BasicJsonType>
+struct nlohmann::json_sax< BasicJsonType >

+ +

SAX interface.

+

This class describes the SAX interface used by nlohmann::json::sax_parse. Each function is called in different situations while the input is parsed. The boolean return value informs the parser whether to continue processing the input.

+

Member Function Documentation

+ +

◆ null()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::null ()
+
+pure virtual
+
+ +

a null value was read

+
Returns
whether parsing should proceed
+ +
+
+ +

◆ boolean()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::boolean (bool val)
+
+pure virtual
+
+ +

a boolean value was read

+
Parameters
+ + +
[in]valboolean value
+
+
+
Returns
whether parsing should proceed
+ +
+
+ +

◆ number_integer()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::number_integer (number_integer_t val)
+
+pure virtual
+
+ +

an integer number was read

+
Parameters
+ + +
[in]valinteger value
+
+
+
Returns
whether parsing should proceed
+ +
+
+ +

◆ number_unsigned()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::number_unsigned (number_unsigned_t val)
+
+pure virtual
+
+ +

an unsigned integer number was read

+
Parameters
+ + +
[in]valunsigned integer value
+
+
+
Returns
whether parsing should proceed
+ +
+
+ +

◆ number_float()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::number_float (number_float_t val,
const string_t & s 
)
+
+pure virtual
+
+ +

an floating-point number was read

+
Parameters
+ + + +
[in]valfloating-point value
[in]sraw token value
+
+
+
Returns
whether parsing should proceed
+ +
+
+ +

◆ string()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::string (string_t & val)
+
+pure virtual
+
+ +

a string was read

+
Parameters
+ + +
[in]valstring value
+
+
+
Returns
whether parsing should proceed
+
Note
It is safe to move the passed string.
+ +
+
+ +

◆ binary()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::binary (binary_t & val)
+
+pure virtual
+
+ +

a binary string was read

+
Parameters
+ + +
[in]valbinary value
+
+
+
Returns
whether parsing should proceed
+
Note
It is safe to move the passed binary.
+ +
+
+ +

◆ start_object()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::start_object (std::size_t elements)
+
+pure virtual
+
+ +

the beginning of an object was read

+
Parameters
+ + +
[in]elementsnumber of object elements or -1 if unknown
+
+
+
Returns
whether parsing should proceed
+
Note
binary formats may report the number of elements
+ +
+
+ +

◆ key()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::key (string_t & val)
+
+pure virtual
+
+ +

an object key was read

+
Parameters
+ + +
[in]valobject key
+
+
+
Returns
whether parsing should proceed
+
Note
It is safe to move the passed string.
+ +
+
+ +

◆ end_object()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::end_object ()
+
+pure virtual
+
+ +

the end of an object was read

+
Returns
whether parsing should proceed
+ +
+
+ +

◆ start_array()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::start_array (std::size_t elements)
+
+pure virtual
+
+ +

the beginning of an array was read

+
Parameters
+ + +
[in]elementsnumber of array elements or -1 if unknown
+
+
+
Returns
whether parsing should proceed
+
Note
binary formats may report the number of elements
+ +
+
+ +

◆ end_array()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::end_array ()
+
+pure virtual
+
+ +

the end of an array was read

+
Returns
whether parsing should proceed
+ +
+
+ +

◆ parse_error()

+ +
+
+
+template<typename BasicJsonType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool nlohmann::json_sax< BasicJsonType >::parse_error (std::size_t position,
const std::string & last_token,
const detail::exceptionex 
)
+
+pure virtual
+
+ +

a parse error occurred

+
Parameters
+ + + + +
[in]positionthe position in the input where the error occurs
[in]last_tokenthe last read token
[in]exan exception object describing the error
+
+
+
Returns
whether parsing should proceed (must return false)
+ +
+
+
+
+ + + + diff --git a/structnlohmann_1_1json__sax.js b/structnlohmann_1_1json__sax.js new file mode 100644 index 0000000..9e5c8c8 --- /dev/null +++ b/structnlohmann_1_1json__sax.js @@ -0,0 +1,16 @@ +var structnlohmann_1_1json__sax = +[ + [ "null", "structnlohmann_1_1json__sax.html#a0ad26edef3f8d530dcec3192bba82df6", null ], + [ "boolean", "structnlohmann_1_1json__sax.html#a82ed080814fa656191a537284bb0c575", null ], + [ "number_integer", "structnlohmann_1_1json__sax.html#affa7a78b8e9cc9cc3ac99927143142a5", null ], + [ "number_unsigned", "structnlohmann_1_1json__sax.html#ad9b253083e0509923ba195136f49face", null ], + [ "number_float", "structnlohmann_1_1json__sax.html#ae7c31614e8a82164d2d7f8dbf4671b25", null ], + [ "string", "structnlohmann_1_1json__sax.html#a07eab82f6c82d606787eee9ad73d2bda", null ], + [ "binary", "structnlohmann_1_1json__sax.html#a38c2dbde07138cc436ea7fbf22c1e92d", null ], + [ "start_object", "structnlohmann_1_1json__sax.html#a0671528b0debb5a348169d61f0382a0f", null ], + [ "key", "structnlohmann_1_1json__sax.html#a2e0c7ecd80b18d18a8cc76f71cfc2028", null ], + [ "end_object", "structnlohmann_1_1json__sax.html#ad0c722d53ff97be700ccf6a9468bd456", null ], + [ "start_array", "structnlohmann_1_1json__sax.html#a5c53878cf08d463eb4e7ca0270532572", null ], + [ "end_array", "structnlohmann_1_1json__sax.html#a235ee975617f28e6a996d1e36a282312", null ], + [ "parse_error", "structnlohmann_1_1json__sax.html#a60287e3bd85f489e04c83f7e3b76e613", null ] +]; \ No newline at end of file diff --git a/structnlohmann_1_1ordered__map-members.html b/structnlohmann_1_1ordered__map-members.html new file mode 100644 index 0000000..9bc432f --- /dev/null +++ b/structnlohmann_1_1ordered__map-members.html @@ -0,0 +1,70 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::ordered_map< Key, T, IgnoredLess, Allocator > Member List
+
+
+ +

This is the complete list of members for nlohmann::ordered_map< Key, T, IgnoredLess, Allocator >, including all inherited members.

+
+
+ + + + diff --git a/structnlohmann_1_1ordered__map.html b/structnlohmann_1_1ordered__map.html new file mode 100644 index 0000000..6b99e0e --- /dev/null +++ b/structnlohmann_1_1ordered__map.html @@ -0,0 +1,78 @@ + + + + + + + +Renderd7-nightly: nlohmann::ordered_map< Key, T, IgnoredLess, Allocator > Struct Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::ordered_map< Key, T, IgnoredLess, Allocator > Struct Template Reference
+
+
+ +

#include <json.hpp>

+

Detailed Description

+

template<class Key, class T, class IgnoredLess = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T>>>
+struct nlohmann::ordered_map< Key, T, IgnoredLess, Allocator >

+ +

ordered_map: a minimal map-like container that preserves insertion order for use within nlohmann::basic_json<ordered_map>

+
+
+ + + + 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 new file mode 100644 index 0000000..967a3f7 --- /dev/null +++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4-members.html @@ -0,0 +1,72 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
std::hash< nlohmann::json > Member List
+
+
+ +

This is the complete list of members for std::hash< nlohmann::json >, including all inherited members.

+ + +
operator()(const nlohmann::json &j) conststd::hash< nlohmann::json >inline
+
+ + + + diff --git a/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html new file mode 100644 index 0000000..307173c --- /dev/null +++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.html @@ -0,0 +1,116 @@ + + + + + + + +Renderd7-nightly: std::hash< nlohmann::json > Struct Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
std::hash< nlohmann::json > Struct Reference
+
+
+ +

hash value for JSON objects + More...

+ +

#include <json.hpp>

+ + + + + +

+Public Member Functions

std::size_t operator() (const nlohmann::json &j) const
 return a hash value for a JSON object More...
 
+

Detailed Description

+

hash value for JSON objects

+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
std::size_t std::hash< nlohmann::json >::operator() (const nlohmann::jsonj) const
+
+inline
+
+ +

return a hash value for a JSON object

+
Since
version 1.0.0
+ +
+
+
+
+ + + + diff --git a/structstd_1_1hash_3_01nlohmann_1_1json_01_4.js b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.js new file mode 100644 index 0000000..8b0f2ff --- /dev/null +++ b/structstd_1_1hash_3_01nlohmann_1_1json_01_4.js @@ -0,0 +1,4 @@ +var structstd_1_1hash_3_01nlohmann_1_1json_01_4 = +[ + [ "operator()", "structstd_1_1hash_3_01nlohmann_1_1json_01_4.html#aec1567d1fa47dbe5b77954dce3a55b64", null ] +]; \ No newline at end of file diff --git a/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4-members.html b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4-members.html new file mode 100644 index 0000000..f7fd933 --- /dev/null +++ b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4-members.html @@ -0,0 +1,72 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
std::less<::nlohmann::detail::value_t > Member List
+
+
+ +

This is the complete list of members for std::less<::nlohmann::detail::value_t >, including all inherited members.

+ + +
operator()(nlohmann::detail::value_t lhs, nlohmann::detail::value_t rhs) const noexceptstd::less<::nlohmann::detail::value_t >inline
+
+ + + + diff --git a/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html new file mode 100644 index 0000000..0c78076 --- /dev/null +++ b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html @@ -0,0 +1,123 @@ + + + + + + + +Renderd7-nightly: std::less<::nlohmann::detail::value_t > Struct Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
std::less<::nlohmann::detail::value_t > Struct Reference
+
+
+ +

#include <json.hpp>

+ + + + + +

+Public Member Functions

bool operator() (nlohmann::detail::value_t lhs, nlohmann::detail::value_t rhs) const noexcept
 compare two value_t enum values More...
 
+

Detailed Description

+

specialization for std::less<value_t>

Note
: do not remove the space after '<', see https://github.com/nlohmann/json/pull/679
+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool std::less<::nlohmann::detail::value_t >::operator() (nlohmann::detail::value_t lhs,
nlohmann::detail::value_t rhs 
) const
+
+inlinenoexcept
+
+ +

compare two value_t enum values

+
Since
version 3.0.0
+ +
+
+
+
+ + + + diff --git a/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.js b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.js new file mode 100644 index 0000000..8a0f27e --- /dev/null +++ b/structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.js @@ -0,0 +1,4 @@ +var structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4 = +[ + [ "operator()", "structstd_1_1less_3_1_1nlohmann_1_1detail_1_1value__t_01_4.html#a10d3fea50edf7b15ead8f4ceeb006000", null ] +]; \ No newline at end of file diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..0de6039a005defef893773818a77f05375fc1860 GIT binary patch literal 844 zcmV-S1GD^zP)SO*Y~S1c1%qFm$&hxk|A62FM^;x7Oz2>=${;w#Y*sso0ipOuBa9~9q-HgOj) z6srKW;)L)6OhT&oOso;RMSJX*b|AJiil1Mi@z^I@oD+NE1$bASdCs%}Ovcxu*&INl zpPquo!_P4>H#We2Q3zm`keUHt$v({qU?oko3Y!M-h$a97n+?y}ZR4);r2v*vyszV} z--X?o3}B}DKUV`R7cN7u)3PXP+=uIp8vFRjQvge2LxW_MRpH-w7^k}cz^p+7R2zC# zI0t`AE9tX!Uje*W@=Sj)NP5YefT1kc01Lx!uJR?k_Q?U9Gx8(9$SkcOe?=4d?`;eU zKlv-0aaXT3jN13n7lzL?c{D(d)(Tc{##1k|NL~E!S3GyL%FOYD3Qu_?T}#}lT-23?O>?)ZysL!0bqi(;sxZq zT}SVaM;YmV1YovE187ALxyS((n-!9NqayBKiSdl5VcOVy9u9K7Xea zFq9jiYjb+&(lB=dz^qGrDs)c)(Gu?l`%Qc(=8Jk!E8L-rL<2q%nwOVCjRxl%!0dkv WN2I5Xk|h8D0000U(||fQ6ch$Q#=sY#U*i8+yaQl1rSHB_(C*Ct^rGETY2REm^dZA z6?Xtj#7j^oj*0-lEToB#MT6KYx?*oSfY{h1etC}0V?R0KgxHrT!8@Y!8N&uJ8{dmo zdjidVYz{g%KZiwGY=SRE5kNeyvq>BU#1D_g%_}dD?N*nO`kiwuhsB4^a#LW^5Ga+<<$h*z9Bic5Fnmr zO|Sy6gu7@lfvp{Q7U|joNGx?hAe_Wg`Z|DJy(U;1+v2TQ$%~u6B00NYrY$pANx{1< z6ujRy?Y&lVS2SAQws^ySOPg6dnjp`dw8Ayp@ipv{>l7dwX(d5&maitK@`GtrtH@kZ z1w_MeILWVVrg-CLINhFMbFwvoVg4a0GaKN4ak?`woUWNkGi0;-OTJ6ZhP;}!%&++f zh{pIo1B6E9p^Wgez|<7Z6gMgJt(84=wTJ#+JDHl8Fq`@`!H;rb=`ka?OonR*F1IKA zyTAK5gO`5>qM>E_(l*`S2v^zto-T%Zy8%mF*OhzGo?!IPD~u1{$NynFDfz`XlAc~v zX8r5i-8*xHvAZ_`>@MmX=tx%CeRDrm6@Pe{4TNp=746^1>9?H zc7KaK0CVJP?c9E%ofNu!bw3CAuMUat5}jy2h^=A-;5q5yIv_r=%+=1ff`BD{iyWIT zL=Fx6Ljc(Ih%G|b6cCL>C)f?KUc4gKi8_%RIY>0&zd~#CLZs91cmvoy0S|bi=Gqyd QJpcdz07*qoM6N<$f}a|P5C8xG literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..03fef552859bd54ff6f81327afb779b0572917c8 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qjwl6jv*C{Z|6GlH8^lEXGZo) z^B>!hp0D=rX!rm6-q?cwfeK5R<2O9Fx^b=Z`L=@ft(zyas4QMRJMzTLxHAp=%abRv wr&g_dufQudZH@8X`Q7t&?z#H&qw`bdXZ=hXJNt~(ftE0My85}Sb4q9e0F}NsvH$=8 literal 0 HcmV?d00001 diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..930893e03c4a0cf6663d15732277557abe060bf9 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0kZ9WoGU`8a)M zN6EvzG2D+%xoU{1Zgg3B!@m6uV-+`lLQUuGdx>rL%Xxn480Tzd-X^+Suc+#t<*^0d zWo~J^2(@2uxHNt5{uQ2UH!r^buhi5Fd~c@H!^-I-{v^|MIbuJ5<}?WM9M Ut{gi`fOa!@y85}Sb4q9e09&R)N&o-= literal 0 HcmV?d00001 diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..537be7039c857b8827d65b269f400864a92caa8d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qk9-Ajv*C{Z|6F4H90W2{{N%z z%5rz{+}CD$cU+V>CW^Xl>CL#vBey)cM5TY>Pss2X~T)clgHf3)w?*(Ij&g4U$pVc$ex&5HD)^T#w!PWH8rdqn{<<5V@tHHnr#QU79vt|123!B@urGBt z|9qXJQN;IEGi}i4pn`D20UfU$mhYYS)#OI&4 ted5S}bIa-uj+yTiuD-p`zNGFo_rx?kx1xU~FM)1i@O1TaS?83{1ORb!OiBO% literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000..7d45d36 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/unionnlohmann_1_1basic__json_1_1json__value-members.html b/unionnlohmann_1_1basic__json_1_1json__value-members.html new file mode 100644 index 0000000..a515e20 --- /dev/null +++ b/unionnlohmann_1_1basic__json_1_1json__value-members.html @@ -0,0 +1,95 @@ + + + + + + + +Renderd7-nightly: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
nlohmann::basic_json::json_value Member List
+
+
+ +

This is the complete list of members for nlohmann::basic_json::json_value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
arraynlohmann::basic_json::json_value
binarynlohmann::basic_json::json_value
booleannlohmann::basic_json::json_value
json_value()=defaultnlohmann::basic_json::json_value
json_value(boolean_t v) noexceptnlohmann::basic_json::json_valueinline
json_value(number_integer_t v) noexceptnlohmann::basic_json::json_valueinline
json_value(number_unsigned_t v) noexceptnlohmann::basic_json::json_valueinline
json_value(number_float_t v) noexceptnlohmann::basic_json::json_valueinline
json_value(value_t t)nlohmann::basic_json::json_valueinline
json_value(const string_t &value)nlohmann::basic_json::json_valueinline
json_value(string_t &&value)nlohmann::basic_json::json_valueinline
json_value(const object_t &value)nlohmann::basic_json::json_valueinline
json_value(object_t &&value)nlohmann::basic_json::json_valueinline
json_value(const array_t &value)nlohmann::basic_json::json_valueinline
json_value(array_t &&value)nlohmann::basic_json::json_valueinline
json_value(const typename binary_t::container_type &value)nlohmann::basic_json::json_valueinline
json_value(typename binary_t::container_type &&value)nlohmann::basic_json::json_valueinline
json_value(const binary_t &value)nlohmann::basic_json::json_valueinline
json_value(binary_t &&value)nlohmann::basic_json::json_valueinline
number_floatnlohmann::basic_json::json_value
number_integernlohmann::basic_json::json_value
number_unsignednlohmann::basic_json::json_value
objectnlohmann::basic_json::json_value
stringnlohmann::basic_json::json_value
+
+ + + + diff --git a/unionnlohmann_1_1basic__json_1_1json__value.html b/unionnlohmann_1_1basic__json_1_1json__value.html new file mode 100644 index 0000000..361f610 --- /dev/null +++ b/unionnlohmann_1_1basic__json_1_1json__value.html @@ -0,0 +1,206 @@ + + + + + + + +Renderd7-nightly: nlohmann::basic_json::json_value Union Reference + + + + + + + + + + +
+
+ + + + + + +
+
Renderd7-nightly +  v0.7.0 +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
nlohmann::basic_json::json_value Union Reference
+
+
+ +

a JSON value + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

json_value ()=default
 default constructor (for null values)
 
json_value (boolean_t v) noexcept
 constructor for booleans
 
json_value (number_integer_t v) noexcept
 constructor for numbers (integer)
 
json_value (number_unsigned_t v) noexcept
 constructor for numbers (unsigned)
 
json_value (number_float_t v) noexcept
 constructor for numbers (floating-point)
 
json_value (value_t t)
 constructor for empty values of a given type
 
json_value (const string_t &value)
 constructor for strings
 
json_value (string_t &&value)
 constructor for rvalue strings
 
json_value (const object_t &value)
 constructor for objects
 
json_value (object_t &&value)
 constructor for rvalue objects
 
json_value (const array_t &value)
 constructor for arrays
 
json_value (array_t &&value)
 constructor for rvalue arrays
 
json_value (const typename binary_t::container_type &value)
 constructor for binary arrays
 
json_value (typename binary_t::container_type &&value)
 constructor for rvalue binary arrays
 
json_value (const binary_t &value)
 constructor for binary arrays (internal type)
 
json_value (binary_t &&value)
 constructor for rvalue binary arrays (internal type)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+object_tobject
 object (stored with pointer to save storage)
 
+array_tarray
 array (stored with pointer to save storage)
 
+string_tstring
 string (stored with pointer to save storage)
 
+binary_tbinary
 binary (stored with pointer to save storage)
 
+boolean_t boolean
 boolean
 
+number_integer_t number_integer
 number (integer)
 
+number_unsigned_t number_unsigned
 number (unsigned integer)
 
+number_float_t number_float
 number (floating-point)
 
+

Detailed Description

+

a JSON value

+

The actual storage for a JSON value of the basic_json class. This union combines the different storage types for the JSON value types defined in value_t.

+ + + + + + + + + + + + + + + + + + + + + +
JSON type value_t type used type
object object pointer to object_t
array array pointer to array_t
string string pointer to string_t
boolean boolean boolean_t
number number_integer number_integer_t
number number_unsigned number_unsigned_t
number number_float number_float_t
binary binary pointer to binary_t
null null no value is stored
+
Note
Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used.
+
Since
version 1.0.0
+
+
+ + + + diff --git a/unionnlohmann_1_1basic__json_1_1json__value.js b/unionnlohmann_1_1basic__json_1_1json__value.js new file mode 100644 index 0000000..5f69ed0 --- /dev/null +++ b/unionnlohmann_1_1basic__json_1_1json__value.js @@ -0,0 +1,27 @@ +var unionnlohmann_1_1basic__json_1_1json__value = +[ + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#addaa9da9958343a8687079c6c8561828", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a359b6d7bdd95150e28a21c2def590b3b", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a7bd504626c862a55f3e464089390be61", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a356100d324dddcc0ed1bdcca086bc809", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a5f3f88981a4c2a2a19aeb650e37bb117", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a5b3c9b26efff2a7e4ff417df750db888", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a7d36046b1d3a41021459229963aa906d", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a16cf11cea854b7d33ece1204c044d91d", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a9d5a9dd88cf61a0fa90fec56d035273d", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a03d2d3f64da9403ffc2393c4b419e514", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a11a68bfcc7bd3623023594705788f25b", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#ae9a619d174aa0f8020847e965db7752d", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a9bfee5458a35e4b1d259797bb142bb12", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#ae6cfc1f8254912522487a3596a030f8b", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a2807432b367e5bd4e49f76c206b5cecf", null ], + [ "json_value", "unionnlohmann_1_1basic__json_1_1json__value.html#a15baffa618c4e5bacd7daf7bba0f8e74", null ], + [ "object", "unionnlohmann_1_1basic__json_1_1json__value.html#a9a17d18e60b32adfe4f7f978d3ab5f15", null ], + [ "array", "unionnlohmann_1_1basic__json_1_1json__value.html#a230c40872531081809d0265a45e1a3be", null ], + [ "string", "unionnlohmann_1_1basic__json_1_1json__value.html#a9eb894164977ae59922dddc11e1d901d", null ], + [ "binary", "unionnlohmann_1_1basic__json_1_1json__value.html#a5e02afb384ff616835e7756c54385015", null ], + [ "boolean", "unionnlohmann_1_1basic__json_1_1json__value.html#a10e0feb275d431d984cefd4b293d42d5", null ], + [ "number_integer", "unionnlohmann_1_1basic__json_1_1json__value.html#a36022bc146c1c190fb77f51ab654964d", null ], + [ "number_unsigned", "unionnlohmann_1_1basic__json_1_1json__value.html#a9a865e1935c91145c9d73aa1d925ce6b", null ], + [ "number_float", "unionnlohmann_1_1basic__json_1_1json__value.html#a685ff0842614609b61fd634a6c958ca6", null ] +]; \ No newline at end of file