blob: 2ce6c7609c94ab95a910cc8aa332032227a92cba [file] [log] [blame] [edit]
<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content="Niels Lohmann"><link href=https://json.nlohmann.me/features/macros/ rel=canonical><link href=../enum_conversion/ rel=prev><link href=../types/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.5.3, mkdocs-material-9.4.7"><title>Supported Macros - JSON for Modern C++</title><link rel=stylesheet href=../../assets/stylesheets/main.4b4a2bd9.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.356b1318.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"JetBrains Mono"}</style><link rel=stylesheet href=../../css/custom.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo> <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#supported-macros class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="JSON for Modern C++" class="md-header__button md-logo" aria-label="JSON for Modern C++" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> JSON for Modern C++ </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Supported Macros </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to dark mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_2 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to light mode" type=radio name=__palette id=__palette_2> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg> </label> </form> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/nlohmann/json title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> nlohmann/json </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../arbitrary_types/ class=md-tabs__link> Features </a> </li> <li class=md-tabs__item> <a href=../../integration/ class=md-tabs__link> Integration </a> </li> <li class=md-tabs__item> <a href=../../api/basic_json/ class=md-tabs__link> API Documentation </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="JSON for Modern C++" class="md-nav__button md-logo" aria-label="JSON for Modern C++" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> JSON for Modern C++ </label> <div class=md-nav__source> <a href=https://github.com/nlohmann/json title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> nlohmann/json </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_1> <div class="md-nav__link md-nav__container"> <a href=../.. class="md-nav__link "> <span class=md-ellipsis> Home </span> </a> <label class="md-nav__link " for=__nav_1 id=__nav_1_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_1_label aria-expanded=false> <label class=md-nav__title for=__nav_1> <span class="md-nav__icon md-icon"></span> Home </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../home/license/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../home/code_of_conduct/ class=md-nav__link> <span class=md-ellipsis> Code of Conduct </span> </a> </li> <li class=md-nav__item> <a href=../../home/faq/ class=md-nav__link> <span class=md-ellipsis> FAQ </span> </a> </li> <li class=md-nav__item> <a href=../../home/exceptions/ class=md-nav__link> <span class=md-ellipsis> Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../home/releases/ class=md-nav__link> <span class=md-ellipsis> Releases </span> </a> </li> <li class=md-nav__item> <a href=../../home/design_goals/ class=md-nav__link> <span class=md-ellipsis> Design goals </span> </a> </li> <li class=md-nav__item> <a href=../../home/sponsors/ class=md-nav__link> <span class=md-ellipsis> Sponsors </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Features </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Features </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../arbitrary_types/ class=md-nav__link> <span class=md-ellipsis> Arbitrary Type Conversions </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_2> <div class="md-nav__link md-nav__container"> <a href=../binary_formats/ class="md-nav__link "> <span class=md-ellipsis> Binary Formats </span> </a> <label class="md-nav__link " for=__nav_2_2 id=__nav_2_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2_2> <span class="md-nav__icon md-icon"></span> Binary Formats </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../binary_formats/bjdata/ class=md-nav__link> <span class=md-ellipsis> BJData </span> </a> </li> <li class=md-nav__item> <a href=../binary_formats/bson/ class=md-nav__link> <span class=md-ellipsis> BSON </span> </a> </li> <li class=md-nav__item> <a href=../binary_formats/cbor/ class=md-nav__link> <span class=md-ellipsis> CBOR </span> </a> </li> <li class=md-nav__item> <a href=../binary_formats/messagepack/ class=md-nav__link> <span class=md-ellipsis> MessagePack </span> </a> </li> <li class=md-nav__item> <a href=../binary_formats/ubjson/ class=md-nav__link> <span class=md-ellipsis> UBJSON </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../binary_values/ class=md-nav__link> <span class=md-ellipsis> Binary Values </span> </a> </li> <li class=md-nav__item> <a href=../comments/ class=md-nav__link> <span class=md-ellipsis> Comments </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_5> <div class="md-nav__link md-nav__container"> <a href=../element_access/ class="md-nav__link "> <span class=md-ellipsis> Element Access </span> </a> <label class="md-nav__link " for=__nav_2_5 id=__nav_2_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_5_label aria-expanded=false> <label class=md-nav__title for=__nav_2_5> <span class="md-nav__icon md-icon"></span> Element Access </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../element_access/unchecked_access/ class=md-nav__link> <span class=md-ellipsis> Unchecked access: operator[] </span> </a> </li> <li class=md-nav__item> <a href=../element_access/checked_access/ class=md-nav__link> <span class=md-ellipsis> Checked access: at </span> </a> </li> <li class=md-nav__item> <a href=../element_access/default_value/ class=md-nav__link> <span class=md-ellipsis> Access with default value: value </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../iterators/ class=md-nav__link> <span class=md-ellipsis> Iterators </span> </a> </li> <li class=md-nav__item> <a href=../json_pointer/ class=md-nav__link> <span class=md-ellipsis> JSON Pointer </span> </a> </li> <li class=md-nav__item> <a href=../json_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Patch and Diff </span> </a> </li> <li class=md-nav__item> <a href=../merge_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Merge Patch </span> </a> </li> <li class=md-nav__item> <a href=../namespace/ class=md-nav__link> <span class=md-ellipsis> nlohmann Namespace </span> </a> </li> <li class=md-nav__item> <a href=../object_order/ class=md-nav__link> <span class=md-ellipsis> Object Order </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_12> <div class="md-nav__link md-nav__container"> <a href=../parsing/ class="md-nav__link "> <span class=md-ellipsis> Parsing </span> </a> <label class="md-nav__link " for=__nav_2_12 id=__nav_2_12_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_12_label aria-expanded=false> <label class=md-nav__title for=__nav_2_12> <span class="md-nav__icon md-icon"></span> Parsing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../parsing/json_lines/ class=md-nav__link> <span class=md-ellipsis> JSON Lines </span> </a> </li> <li class=md-nav__item> <a href=../parsing/parse_exceptions/ class=md-nav__link> <span class=md-ellipsis> Parsing and Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../parsing/parser_callbacks/ class=md-nav__link> <span class=md-ellipsis> Parser Callbacks </span> </a> </li> <li class=md-nav__item> <a href=../parsing/sax_interface/ class=md-nav__link> <span class=md-ellipsis> SAX Interface </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../assertions/ class=md-nav__link> <span class=md-ellipsis> Runtime Assertions </span> </a> </li> <li class=md-nav__item> <a href=../enum_conversion/ class=md-nav__link> <span class=md-ellipsis> Specializing enum conversion </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Supported Macros </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Supported Macros </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#json_assertx class=md-nav__link> JSON_ASSERT(x) </a> </li> <li class=md-nav__item> <a href=#json_catch_userexception class=md-nav__link> JSON_CATCH_USER(exception) </a> </li> <li class=md-nav__item> <a href=#json_diagnostics class=md-nav__link> JSON_DIAGNOSTICS </a> </li> <li class=md-nav__item> <a href=#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20 class=md-nav__link> JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20 </a> </li> <li class=md-nav__item> <a href=#json_has_filesystem-json_has_experimental_filesystem class=md-nav__link> JSON_HAS_FILESYSTEM, JSON_HAS_EXPERIMENTAL_FILESYSTEM </a> </li> <li class=md-nav__item> <a href=#json_noexception class=md-nav__link> JSON_NOEXCEPTION </a> </li> <li class=md-nav__item> <a href=#json_disable_enum_serialization class=md-nav__link> JSON_DISABLE_ENUM_SERIALIZATION </a> </li> <li class=md-nav__item> <a href=#json_no_io class=md-nav__link> JSON_NO_IO </a> </li> <li class=md-nav__item> <a href=#json_skip_library_version_check class=md-nav__link> JSON_SKIP_LIBRARY_VERSION_CHECK </a> </li> <li class=md-nav__item> <a href=#json_skip_unsupported_compiler_check class=md-nav__link> JSON_SKIP_UNSUPPORTED_COMPILER_CHECK </a> </li> <li class=md-nav__item> <a href=#json_throw_userexception class=md-nav__link> JSON_THROW_USER(exception) </a> </li> <li class=md-nav__item> <a href=#json_try_user class=md-nav__link> JSON_TRY_USER </a> </li> <li class=md-nav__item> <a href=#json_use_implicit_conversions class=md-nav__link> JSON_USE_IMPLICIT_CONVERSIONS </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusivetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusive_with_defaulttype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusive_only_serializetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusivetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusive_with_defaulttype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusive_only_serializetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_json_serialize_enumtype class=md-nav__link> NLOHMANN_JSON_SERIALIZE_ENUM(type, ...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch class=md-nav__link> NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_16> <div class="md-nav__link md-nav__container"> <a href=../types/ class="md-nav__link "> <span class=md-ellipsis> Types </span> </a> <label class="md-nav__link " for=__nav_2_16 id=__nav_2_16_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_16_label aria-expanded=false> <label class=md-nav__title for=__nav_2_16> <span class="md-nav__icon md-icon"></span> Types </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../types/number_handling/ class=md-nav__link> <span class=md-ellipsis> Number Handling </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3> <div class="md-nav__link md-nav__container"> <a href=../../integration/ class="md-nav__link "> <span class=md-ellipsis> Integration </span> </a> <label class="md-nav__link " for=__nav_3 id=__nav_3_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Integration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../integration/migration_guide/ class=md-nav__link> <span class=md-ellipsis> Migration Guide </span> </a> </li> <li class=md-nav__item> <a href=../../integration/cmake/ class=md-nav__link> <span class=md-ellipsis> CMake </span> </a> </li> <li class=md-nav__item> <a href=../../integration/package_managers/ class=md-nav__link> <span class=md-ellipsis> Package Managers </span> </a> </li> <li class=md-nav__item> <a href=../../integration/pkg-config/ class=md-nav__link> <span class=md-ellipsis> Pkg-config </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex> <span class=md-ellipsis> API Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> API Documentation </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_1> <div class="md-nav__link md-nav__container"> <a href=../../api/basic_json/ class="md-nav__link "> <span class=md-ellipsis> basic_json </span> </a> <label class="md-nav__link " for=__nav_4_1 id=__nav_4_1_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_1_label aria-expanded=false> <label class=md-nav__title for=__nav_4_1> <span class="md-nav__icon md-icon"></span> basic_json </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/basic_json/basic_json/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/~basic_json/ class=md-nav__link> <span class=md-ellipsis> (Destructor) </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/array/ class=md-nav__link> <span class=md-ellipsis> array </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/array_t/ class=md-nav__link> <span class=md-ellipsis> array_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/binary_t/ class=md-nav__link> <span class=md-ellipsis> binary_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/boolean_t/ class=md-nav__link> <span class=md-ellipsis> boolean_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/cbor_tag_handler_t/ class=md-nav__link> <span class=md-ellipsis> cbor_tag_handler_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/clear/ class=md-nav__link> <span class=md-ellipsis> clear </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/crbegin/ class=md-nav__link> <span class=md-ellipsis> crbegin </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/crend/ class=md-nav__link> <span class=md-ellipsis> crend </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/default_object_comparator_t/ class=md-nav__link> <span class=md-ellipsis> default_object_comparator_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/diff/ class=md-nav__link> <span class=md-ellipsis> diff </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/emplace/ class=md-nav__link> <span class=md-ellipsis> emplace </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/emplace_back/ class=md-nav__link> <span class=md-ellipsis> emplace_back </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/error_handler_t/ class=md-nav__link> <span class=md-ellipsis> error_handler_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/exception/ class=md-nav__link> <span class=md-ellipsis> exception </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/flatten/ class=md-nav__link> <span class=md-ellipsis> flatten </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/from_bjdata/ class=md-nav__link> <span class=md-ellipsis> from_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/from_bson/ class=md-nav__link> <span class=md-ellipsis> from_bson </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/from_cbor/ class=md-nav__link> <span class=md-ellipsis> from_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/from_msgpack/ class=md-nav__link> <span class=md-ellipsis> from_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/from_ubjson/ class=md-nav__link> <span class=md-ellipsis> from_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get_allocator/ class=md-nav__link> <span class=md-ellipsis> get_allocator </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get_binary/ class=md-nav__link> <span class=md-ellipsis> get_binary </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get_ptr/ class=md-nav__link> <span class=md-ellipsis> get_ptr </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get_ref/ class=md-nav__link> <span class=md-ellipsis> get_ref </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/std_hash/ class=md-nav__link> <span class=md-ellipsis> std::hash&lt;basic_json&gt; </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/input_format_t/ class=md-nav__link> <span class=md-ellipsis> input_format_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/invalid_iterator/ class=md-nav__link> <span class=md-ellipsis> invalid_iterator </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_number_float/ class=md-nav__link> <span class=md-ellipsis> is_number_float </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_number_integer/ class=md-nav__link> <span class=md-ellipsis> is_number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_number_unsigned/ class=md-nav__link> <span class=md-ellipsis> is_number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/json_base_class_t/ class=md-nav__link> <span class=md-ellipsis> json_base_class_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/json_serializer/ class=md-nav__link> <span class=md-ellipsis> json_serializer </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/max_size/ class=md-nav__link> <span class=md-ellipsis> max_size </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/meta/ class=md-nav__link> <span class=md-ellipsis> meta </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/merge_patch/ class=md-nav__link> <span class=md-ellipsis> merge_patch </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/number_float_t/ class=md-nav__link> <span class=md-ellipsis> number_float_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/number_integer_t/ class=md-nav__link> <span class=md-ellipsis> number_integer_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/number_unsigned_t/ class=md-nav__link> <span class=md-ellipsis> number_unsigned_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/object/ class=md-nav__link> <span class=md-ellipsis> object </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/object_comparator_t/ class=md-nav__link> <span class=md-ellipsis> object_comparator_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/object_t/ class=md-nav__link> <span class=md-ellipsis> object_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_ValueType/ class=md-nav__link> <span class=md-ellipsis> operator ValueType </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_value_t/ class=md-nav__link> <span class=md-ellipsis> operator value_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator%3D/ class=md-nav__link> <span class=md-ellipsis> operator= </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator%2B%3D/ class=md-nav__link> <span class=md-ellipsis> operator+= </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_lt/ class=md-nav__link> <span class=md-ellipsis> operator< </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_gt/ class=md-nav__link> <span class=md-ellipsis> operator> </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_le/ class=md-nav__link> <span class=md-ellipsis> operator<= </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_ge/ class=md-nav__link> <span class=md-ellipsis> operator>= </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/out_of_range/ class=md-nav__link> <span class=md-ellipsis> out_of_range </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/other_error/ class=md-nav__link> <span class=md-ellipsis> other_error </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/parse_event_t/ class=md-nav__link> <span class=md-ellipsis> parse_event_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/parser_callback_t/ class=md-nav__link> <span class=md-ellipsis> parser_callback_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/patch/ class=md-nav__link> <span class=md-ellipsis> patch </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/patch_inplace/ class=md-nav__link> <span class=md-ellipsis> patch_inplace </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/rbegin/ class=md-nav__link> <span class=md-ellipsis> rbegin </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/rend/ class=md-nav__link> <span class=md-ellipsis> rend </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/sax_parse/ class=md-nav__link> <span class=md-ellipsis> sax_parse </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/swap/ class=md-nav__link> <span class=md-ellipsis> swap </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/std_swap/ class=md-nav__link> <span class=md-ellipsis> std::swap&lt;basic_json&gt; </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_bjdata/ class=md-nav__link> <span class=md-ellipsis> to_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_bson/ class=md-nav__link> <span class=md-ellipsis> to_bson </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_cbor/ class=md-nav__link> <span class=md-ellipsis> to_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_msgpack/ class=md-nav__link> <span class=md-ellipsis> to_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/to_ubjson/ class=md-nav__link> <span class=md-ellipsis> to_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/type_error/ class=md-nav__link> <span class=md-ellipsis> type_error </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/unflatten/ class=md-nav__link> <span class=md-ellipsis> unflatten </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/update/ class=md-nav__link> <span class=md-ellipsis> update </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/value/ class=md-nav__link> <span class=md-ellipsis> value </span> </a> </li> <li class=md-nav__item> <a href=../../api/basic_json/value_t/ class=md-nav__link> <span class=md-ellipsis> value_t </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_2> <div class="md-nav__link md-nav__container"> <a href=../../api/byte_container_with_subtype/ class="md-nav__link "> <span class=md-ellipsis> byte_container_with_subtype </span> </a> <label class="md-nav__link " for=__nav_4_2 id=__nav_4_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_2_label aria-expanded=false> <label class=md-nav__title for=__nav_4_2> <span class="md-nav__icon md-icon"></span> byte_container_with_subtype </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/byte_container_with_subtype/byte_container_with_subtype/ class=md-nav__link> <span class=md-ellipsis> (constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../api/byte_container_with_subtype/clear_subtype/ class=md-nav__link> <span class=md-ellipsis> clear_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../api/byte_container_with_subtype/has_subtype/ class=md-nav__link> <span class=md-ellipsis> has_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../api/byte_container_with_subtype/set_subtype/ class=md-nav__link> <span class=md-ellipsis> set_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../api/byte_container_with_subtype/subtype/ class=md-nav__link> <span class=md-ellipsis> subtype </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_3> <div class="md-nav__link md-nav__container"> <a href=../../api/adl_serializer/ class="md-nav__link "> <span class=md-ellipsis> adl_serializer </span> </a> <label class="md-nav__link " for=__nav_4_3 id=__nav_4_3_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_3_label aria-expanded=false> <label class=md-nav__title for=__nav_4_3> <span class="md-nav__icon md-icon"></span> adl_serializer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/adl_serializer/from_json/ class=md-nav__link> <span class=md-ellipsis> from_json </span> </a> </li> <li class=md-nav__item> <a href=../../api/adl_serializer/to_json/ class=md-nav__link> <span class=md-ellipsis> to_json </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../api/json/ class=md-nav__link> <span class=md-ellipsis> json </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_5> <div class="md-nav__link md-nav__container"> <a href=../../api/json_pointer/ class="md-nav__link "> <span class=md-ellipsis> json_pointer </span> </a> <label class="md-nav__link " for=__nav_4_5 id=__nav_4_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_5_label aria-expanded=false> <label class=md-nav__title for=__nav_4_5> <span class="md-nav__icon md-icon"></span> json_pointer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/json_pointer/json_pointer/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/operator_string_t/ class=md-nav__link> <span class=md-ellipsis> operator string_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/operator_slash/ class=md-nav__link> <span class=md-ellipsis> operator/ </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/operator_slasheq/ class=md-nav__link> <span class=md-ellipsis> operator/= </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/parent_pointer/ class=md-nav__link> <span class=md-ellipsis> parent_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/pop_back/ class=md-nav__link> <span class=md-ellipsis> pop_back </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_pointer/to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_6> <div class="md-nav__link md-nav__container"> <a href=../../api/json_sax/ class="md-nav__link "> <span class=md-ellipsis> json_sax </span> </a> <label class="md-nav__link " for=__nav_4_6 id=__nav_4_6_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_6_label aria-expanded=false> <label class=md-nav__title for=__nav_4_6> <span class="md-nav__icon md-icon"></span> json_sax </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/json_sax/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/boolean/ class=md-nav__link> <span class=md-ellipsis> boolean </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/end_array/ class=md-nav__link> <span class=md-ellipsis> end_array </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/end_object/ class=md-nav__link> <span class=md-ellipsis> end_object </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/key/ class=md-nav__link> <span class=md-ellipsis> key </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/null/ class=md-nav__link> <span class=md-ellipsis> null </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/number_float/ class=md-nav__link> <span class=md-ellipsis> number_float </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/number_integer/ class=md-nav__link> <span class=md-ellipsis> number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/number_unsigned/ class=md-nav__link> <span class=md-ellipsis> number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/start_array/ class=md-nav__link> <span class=md-ellipsis> start_array </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/start_object/ class=md-nav__link> <span class=md-ellipsis> start_object </span> </a> </li> <li class=md-nav__item> <a href=../../api/json_sax/string/ class=md-nav__link> <span class=md-ellipsis> string </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../api/operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<<(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../api/operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<<(json_pointer) </span> </a> </li> <li class=md-nav__item> <a href=../../api/operator_gtgt/ class=md-nav__link> <span class=md-ellipsis> operator>>(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../api/operator_literal_json/ class=md-nav__link> <span class=md-ellipsis> operator""_json </span> </a> </li> <li class=md-nav__item> <a href=../../api/operator_literal_json_pointer/ class=md-nav__link> <span class=md-ellipsis> operator""_json_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../api/ordered_json/ class=md-nav__link> <span class=md-ellipsis> ordered_json </span> </a> </li> <li class=md-nav__item> <a href=../../api/ordered_map/ class=md-nav__link> <span class=md-ellipsis> ordered_map </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_14> <div class="md-nav__link md-nav__container"> <a href=../../api/macros/ class="md-nav__link "> <span class=md-ellipsis> macros </span> </a> <label class="md-nav__link " for=__nav_4_14 id=__nav_4_14_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_14_label aria-expanded=false> <label class=md-nav__title for=__nav_4_14> <span class="md-nav__icon md-icon"></span> macros </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/macros/json_assert/ class=md-nav__link> <span class=md-ellipsis> JSON_ASSERT </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_CATCH_USER </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_diagnostics/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTICS </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_disable_enum_serialization/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_ENUM_SERIALIZATION </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_11 </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_14 </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_17 </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_20 </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_filesystem/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_EXPERIMENTAL_FILESYSTEM </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_filesystem/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_FILESYSTEM </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_ranges/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_RANGES </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_static_rtti/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_STATIC_RTTI </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_has_three_way_comparison/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_THREE_WAY_COMPARISON </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_noexception/ class=md-nav__link> <span class=md-ellipsis> JSON_NOEXCEPTION </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_no_io/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_IO </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_skip_library_version_check/ class=md-nav__link> <span class=md-ellipsis> JSON_SKIP_LIBRARY_VERSION_CHECK </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_skip_unsupported_compiler_check/ class=md-nav__link> <span class=md-ellipsis> JSON_SKIP_UNSUPPORTED_COMPILER_CHECK </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_THROW_USER </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_TRY_USER </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_use_global_udls/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_GLOBAL_UDLS </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_use_implicit_conversions/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_IMPLICIT_CONVERSIONS </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/json_use_legacy_discarded_value_comparison/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_define_type_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_define_type_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_define_type_non_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_define_type_non_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_namespace/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_namespace_begin/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_BEGIN </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_namespace_begin/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_END </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_namespace_no_version/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_NO_VERSION </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_serialize_enum/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_SERIALIZE_ENUM </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_MAJOR </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_MINOR </span> </a> </li> <li class=md-nav__item> <a href=../../api/macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_PATCH </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#json_assertx class=md-nav__link> JSON_ASSERT(x) </a> </li> <li class=md-nav__item> <a href=#json_catch_userexception class=md-nav__link> JSON_CATCH_USER(exception) </a> </li> <li class=md-nav__item> <a href=#json_diagnostics class=md-nav__link> JSON_DIAGNOSTICS </a> </li> <li class=md-nav__item> <a href=#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20 class=md-nav__link> JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20 </a> </li> <li class=md-nav__item> <a href=#json_has_filesystem-json_has_experimental_filesystem class=md-nav__link> JSON_HAS_FILESYSTEM, JSON_HAS_EXPERIMENTAL_FILESYSTEM </a> </li> <li class=md-nav__item> <a href=#json_noexception class=md-nav__link> JSON_NOEXCEPTION </a> </li> <li class=md-nav__item> <a href=#json_disable_enum_serialization class=md-nav__link> JSON_DISABLE_ENUM_SERIALIZATION </a> </li> <li class=md-nav__item> <a href=#json_no_io class=md-nav__link> JSON_NO_IO </a> </li> <li class=md-nav__item> <a href=#json_skip_library_version_check class=md-nav__link> JSON_SKIP_LIBRARY_VERSION_CHECK </a> </li> <li class=md-nav__item> <a href=#json_skip_unsupported_compiler_check class=md-nav__link> JSON_SKIP_UNSUPPORTED_COMPILER_CHECK </a> </li> <li class=md-nav__item> <a href=#json_throw_userexception class=md-nav__link> JSON_THROW_USER(exception) </a> </li> <li class=md-nav__item> <a href=#json_try_user class=md-nav__link> JSON_TRY_USER </a> </li> <li class=md-nav__item> <a href=#json_use_implicit_conversions class=md-nav__link> JSON_USE_IMPLICIT_CONVERSIONS </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusivetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusive_with_defaulttype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_intrusive_only_serializetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusivetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusive_with_defaulttype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_define_type_non_intrusive_only_serializetype-member class=md-nav__link> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_json_serialize_enumtype class=md-nav__link> NLOHMANN_JSON_SERIALIZE_ENUM(type, ...) </a> </li> <li class=md-nav__item> <a href=#nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch class=md-nav__link> NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=supported-macros>Supported Macros<a class=headerlink href=#supported-macros title="Permanent link">&para;</a></h1> <p>Some aspects of the library can be configured by defining preprocessor macros before including the <code>json.hpp</code> header. See also the <a href=../../api/macros/ >API documentation for macros</a> for examples and more information.</p> <h2 id=json_assertx><code>JSON_ASSERT(x)</code><a class=headerlink href=#json_assertx title="Permanent link">&para;</a></h2> <p>This macro controls which code is executed for <a href=../assertions/ >runtime assertions</a> of the library.</p> <p>See <a href=../../api/macros/json_assert/ >full documentation of <code>JSON_ASSERT(x)</code></a>.</p> <h2 id=json_catch_userexception><code>JSON_CATCH_USER(exception)</code><a class=headerlink href=#json_catch_userexception title="Permanent link">&para;</a></h2> <p>This macro overrides <a href=https://en.cppreference.com/w/cpp/language/try_catch><code class=highlight><span class=k>catch</span></code></a> calls inside the library.</p> <p>See <a href=../../api/macros/json_throw_user/ >full documentation of <code>JSON_CATCH_USER(exception)</code></a>.</p> <h2 id=json_diagnostics><code>JSON_DIAGNOSTICS</code><a class=headerlink href=#json_diagnostics title="Permanent link">&para;</a></h2> <p>This macro enables extended diagnostics for exception messages. Possible values are <code>1</code> to enable or <code>0</code> to disable (default).</p> <p>When enabled, exception messages contain a <a href=../json_pointer/ >JSON Pointer</a> to the JSON value that triggered the exception, see <a href=../../home/exceptions/#extended-diagnostic-messages>Extended diagnostic messages</a> for an example. Note that enabling this macro increases the size of every JSON value by one pointer and adds some runtime overhead.</p> <p>The diagnostics messages can also be controlled with the CMake option <code>JSON_Diagnostics</code> (<code>OFF</code> by default) which sets <code>JSON_DIAGNOSTICS</code> accordingly.</p> <p>See <a href=../../api/macros/json_diagnostics/ >full documentation of <code>JSON_DIAGNOSTICS</code></a>.</p> <h2 id=json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20><code>JSON_HAS_CPP_11</code>, <code>JSON_HAS_CPP_14</code>, <code>JSON_HAS_CPP_17</code>, <code>JSON_HAS_CPP_20</code><a class=headerlink href=#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20 title="Permanent link">&para;</a></h2> <p>The library targets C++11, but also supports some features introduced in later C++ versions (e.g., <code>std::string_view</code> support for C++17). For these new features, the library implements some preprocessor checks to determine the C++ standard. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly.</p> <p>See <a href=../../api/macros/json_has_cpp_11/ >full documentation of <code>JSON_HAS_CPP_11</code>, <code>JSON_HAS_CPP_14</code>, <code>JSON_HAS_CPP_17</code>, and <code>JSON_HAS_CPP_20</code></a>.</p> <h2 id=json_has_filesystem-json_has_experimental_filesystem><code>JSON_HAS_FILESYSTEM</code>, <code>JSON_HAS_EXPERIMENTAL_FILESYSTEM</code><a class=headerlink href=#json_has_filesystem-json_has_experimental_filesystem title="Permanent link">&para;</a></h2> <p>When compiling with C++17, the library provides conversions from and to <code>std::filesystem::path</code>. As compiler support for filesystem is limited, the library tries to detect whether <code>&lt;filesystem&gt;</code>/<code>std::filesystem</code> (<code>JSON_HAS_FILESYSTEM</code>) or <code>&lt;experimental/filesystem&gt;</code>/<code>std::experimental::filesystem</code> (<code>JSON_HAS_EXPERIMENTAL_FILESYSTEM</code>) should be used. To override the built-in check, define <code>JSON_HAS_FILESYSTEM</code> or <code>JSON_HAS_EXPERIMENTAL_FILESYSTEM</code> to <code>1</code>.</p> <p>See <a href=../../api/macros/json_has_filesystem/ >full documentation of <code>JSON_HAS_FILESYSTEM</code> and <code>JSON_HAS_EXPERIMENTAL_FILESYSTEM</code></a>.</p> <h2 id=json_noexception><code>JSON_NOEXCEPTION</code><a class=headerlink href=#json_noexception title="Permanent link">&para;</a></h2> <p>Exceptions can be switched off by defining the symbol <code>JSON_NOEXCEPTION</code>.</p> <p>See <a href=../../api/macros/json_noexception/ >full documentation of <code>JSON_NOEXCEPTION</code></a>.</p> <h2 id=json_disable_enum_serialization><code>JSON_DISABLE_ENUM_SERIALIZATION</code><a class=headerlink href=#json_disable_enum_serialization title="Permanent link">&para;</a></h2> <p>When defined, default parse and serialize functions for enums are excluded and have to be provided by the user, for example, using <a href=../../api/macros/nlohmann_json_serialize_enum/ ><code>NLOHMANN_JSON_SERIALIZE_ENUM</code></a>.</p> <p>See <a href=../../api/macros/json_disable_enum_serialization/ >full documentation of <code>JSON_DISABLE_ENUM_SERIALIZATION</code></a>.</p> <h2 id=json_no_io><code>JSON_NO_IO</code><a class=headerlink href=#json_no_io title="Permanent link">&para;</a></h2> <p>When defined, headers <code>&lt;cstdio&gt;</code>, <code>&lt;ios&gt;</code>, <code>&lt;iosfwd&gt;</code>, <code>&lt;istream&gt;</code>, and <code>&lt;ostream&gt;</code> are not included and parse functions relying on these headers are excluded. This is relevant for environment where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)).</p> <p>See <a href=../../api/macros/json_no_io/ >full documentation of <code>JSON_NO_IO</code></a>.</p> <h2 id=json_skip_library_version_check><code>JSON_SKIP_LIBRARY_VERSION_CHECK</code><a class=headerlink href=#json_skip_library_version_check title="Permanent link">&para;</a></h2> <p>When defined, the library will not create a compiler warning when a different version of the library was already included.</p> <p>See <a href=../../api/macros/json_skip_library_version_check/ >full documentation of <code>JSON_SKIP_LIBRARY_VERSION_CHECK</code></a>.</p> <h2 id=json_skip_unsupported_compiler_check><code>JSON_SKIP_UNSUPPORTED_COMPILER_CHECK</code><a class=headerlink href=#json_skip_unsupported_compiler_check title="Permanent link">&para;</a></h2> <p>When defined, the library will not create a compile error when a known unsupported compiler is detected. This allows to use the library with compilers that do not fully support C++11 and may only work if unsupported features are not used.</p> <p>See <a href=../../api/macros/json_skip_unsupported_compiler_check/ >full documentation of <code>JSON_SKIP_UNSUPPORTED_COMPILER_CHECK</code></a>.</p> <h2 id=json_throw_userexception><code>JSON_THROW_USER(exception)</code><a class=headerlink href=#json_throw_userexception title="Permanent link">&para;</a></h2> <p>This macro overrides <code class=highlight><span class=k>throw</span></code> calls inside the library. The argument is the exception to be thrown.</p> <p>See <a href=../../api/macros/json_throw_user/ >full documentation of <code>JSON_THROW_USER(exception)</code></a>.</p> <h2 id=json_try_user><code>JSON_TRY_USER</code><a class=headerlink href=#json_try_user title="Permanent link">&para;</a></h2> <p>This macro overrides <code class=highlight><span class=k>try</span></code> calls inside the library.</p> <p>See <a href=../../api/macros/json_throw_user/ >full documentation of <code>JSON_TRY_USER</code></a>.</p> <h2 id=json_use_implicit_conversions><code>JSON_USE_IMPLICIT_CONVERSIONS</code><a class=headerlink href=#json_use_implicit_conversions title="Permanent link">&para;</a></h2> <p>When defined to <code>0</code>, implicit conversions are switched off. By default, implicit conversions are switched on.</p> <p>See <a href=../../api/macros/json_use_implicit_conversions/ >full documentation of <code>JSON_USE_IMPLICIT_CONVERSIONS</code></a>.</p> <h2 id=nlohmann_define_type_intrusivetype-member><code>NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)</code><a class=headerlink href=#nlohmann_define_type_intrusivetype-member title="Permanent link">&para;</a></h2> <p>This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.</p> <p>The macro is to be defined inside the class/struct to create code for. Unlike <a href=#nlohmann_define_type_non_intrusivetype-member><code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE</code></a>, it can access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.</p> <p>See <a href=../../api/macros/nlohmann_define_type_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_INTRUSIVE</code></a>.</p> <h2 id=nlohmann_define_type_intrusive_with_defaulttype-member><code>NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...)</code><a class=headerlink href=#nlohmann_define_type_intrusive_with_defaulttype-member title="Permanent link">&para;</a></h2> <p>This macro is similar to <code>NLOHMANN_DEFINE_TYPE_INTRUSIVE</code>. It will not throw an exception in <code>from_json()</code> due to a missing value in the JSON object, but can throw due to a mismatched type. The <code>from_json()</code> function default constructs an object and uses its values as the defaults when calling the <a href=../../api/basic_json/value/ ><code>value</code></a> function.</p> <p>See <a href=../../api/macros/nlohmann_define_type_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT</code></a>.</p> <h2 id=nlohmann_define_type_intrusive_only_serializetype-member><code>NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...)</code><a class=headerlink href=#nlohmann_define_type_intrusive_only_serializetype-member title="Permanent link">&para;</a></h2> <p>This macro is similar to <code>NLOHMANN_DEFINE_TYPE_INTRUSIVE</code> except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.</p> <p>See <a href=../../api/macros/nlohmann_define_type_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE</code></a>.</p> <h2 id=nlohmann_define_type_non_intrusivetype-member><code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)</code><a class=headerlink href=#nlohmann_define_type_non_intrusivetype-member title="Permanent link">&para;</a></h2> <p>This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.</p> <p>The macro is to be defined inside the namespace of the class/struct to create code for. Private members cannot be accessed. Use <a href=#nlohmann_define_type_intrusivetype-member><code>NLOHMANN_DEFINE_TYPE_INTRUSIVE</code></a> in these scenarios. The first parameter is the name of the class/struct, and all remaining parameters name the members.</p> <p>See <a href=../../api/macros/nlohmann_define_type_non_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE</code></a>.</p> <h2 id=nlohmann_define_type_non_intrusive_with_defaulttype-member><code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...)</code><a class=headerlink href=#nlohmann_define_type_non_intrusive_with_defaulttype-member title="Permanent link">&para;</a></h2> <p>This macro is similar to <code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE</code>. It will not throw an exception in <code>from_json()</code> due to a missing value in the JSON object, but can throw due to a mismatched type. The <code>from_json()</code> function default constructs an object and uses its values as the defaults when calling the <a href=../../api/basic_json/value/ ><code>value</code></a> function.</p> <p>See <a href=../../api/macros/nlohmann_define_type_non_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT</code></a>.</p> <h2 id=nlohmann_define_type_non_intrusive_only_serializetype-member><code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...)</code><a class=headerlink href=#nlohmann_define_type_non_intrusive_only_serializetype-member title="Permanent link">&para;</a></h2> <p>This macro is similar to <code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE</code> except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.</p> <p>See <a href=../../api/macros/nlohmann_define_type_non_intrusive/ >full documentation of <code>NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE</code></a>.</p> <h2 id=nlohmann_json_serialize_enumtype><code>NLOHMANN_JSON_SERIALIZE_ENUM(type, ...)</code><a class=headerlink href=#nlohmann_json_serialize_enumtype title="Permanent link">&para;</a></h2> <p>This macro simplifies the serialization/deserialization of enum types. See <a href=../enum_conversion/ >Specializing enum conversion</a> for more information.</p> <p>See <a href=../../api/macros/nlohmann_json_serialize_enum/ >full documentation of <code>NLOHMANN_JSON_SERIALIZE_ENUM</code></a>.</p> <h2 id=nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch><code>NLOHMANN_JSON_VERSION_MAJOR</code>, <code>NLOHMANN_JSON_VERSION_MINOR</code>, <code>NLOHMANN_JSON_VERSION_PATCH</code><a class=headerlink href=#nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch title="Permanent link">&para;</a></h2> <p>These macros are defined by the library and contain the version numbers according to <a href=https://semver.org/spec/v2.0.0.html>Semantic Versioning 2.0.0</a>.</p> <p>See <a href=../../api/macros/nlohmann_json_version_major/ >full documentation of <code>NLOHMANN_JSON_VERSION_MAJOR</code>, <code>NLOHMANN_JSON_VERSION_MINOR</code>, and <code>NLOHMANN_JSON_VERSION_PATCH</code></a>.</p> <hr> <div class=md-source-file> <small> Last update: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">November 26, 2023</span> </small> </div> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2013 - 2023 Niels Lohmann </div> </div> <div class=md-social> <a href=https://github.com/nlohmann target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> <a href=https://twitter.com/nlohmann target=_blank rel=noopener title=twitter.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> </a> <a href=https://www.linkedin.com/in/nielslohmann/ target=_blank rel=noopener title=www.linkedin.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg> </a> <a href=https://www.xing.com/profile/Niels_Lohmann target=_blank rel=noopener title=www.xing.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 384 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"/></svg> </a> <a href=https://www.paypal.me/nlohmann target=_blank rel=noopener title=www.paypal.me class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 384 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "navigation.top", "content.tabs.link"], "search": "../../assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src=../../assets/javascripts/bundle.aecac24b.min.js></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script> </body> </html>