Files
json/api/macros/json_recursion_depth_limit/index.html
T
2026-11-12 11:46:38 +00:00

72 lines
136 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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=description content="JSON for Modern C++ is a header-only C++11 library that makes JSON a first-class data type."><meta name=author content="Niels Lohmann"><link href="https://json.nlohmann.me/api/macros/json_recursion_depth_limit/" rel="canonical"><link href=../json_precise_stream_position/ rel=prev><link href=../json_skip_library_version_check/ rel=next><link rel=icon href=../../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.8.0"><title>JSON_RECURSION_DEPTH_LIMIT - JSON for Modern C++</title><link rel=stylesheet href=../../../assets/stylesheets/main.57a0d79d.min.css><link rel=stylesheet href=../../../assets/stylesheets/palette.fb2fffe2.min.css><link rel=stylesheet href=../../../css/custom.css><link rel=stylesheet href=../../../css/brand.css><link rel=stylesheet href=../../../css/fig-sax.css><link rel=stylesheet href=../../../css/fig-jsonview.css><link rel=stylesheet href=../../../css/fig-exceptions.css><link rel=stylesheet href=../../../css/fig-pointer.css><link rel=stylesheet href=../../../css/fig-charts.css><link rel=stylesheet href=../../../css/fig-integration.css><link rel=stylesheet href=../../../css/fig-macros.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=custom data-md-color-accent=custom> <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=#json_recursion_depth_limit 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> <img src=../../../images/wordmark-header.svg alt=logo> </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 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></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> JSON_RECURSION_DEPTH_LIMIT </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=custom data-md-color-accent=custom aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 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 12z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=custom data-md-color-accent=custom aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 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 12s-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 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <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.52 6.52 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 5"/></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.52 6.52 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 5"/></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 11z"/></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 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.6m-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.3m44.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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> <a href=../../../features/ 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 md-tabs__item--active"> <a href=../../basic_json/ class=md-tabs__link> API Documentation </a> </li> <li class=md-tabs__item> <a href=../../../community/ class=md-tabs__link> Community </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> <img src=../../../images/wordmark-header.svg alt=logo> </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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.6m-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.3m44.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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--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=0> <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/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 md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_1_5> <div class="md-nav__link md-nav__container"> <a href=../../../home/releases/ class="md-nav__link "> <span class=md-ellipsis> Releases </span> </a> <label class="md-nav__link " for=__nav_1_5 id=__nav_1_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_1_5_label aria-expanded=false> <label class=md-nav__title for=__nav_1_5> <span class="md-nav__icon md-icon"></span> Releases </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../home/releases/unreleased/ class=md-nav__link> <span class=md-ellipsis> Unreleased </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.12.0/ class=md-nav__link> <span class=md-ellipsis> v3.12.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.3/ class=md-nav__link> <span class=md-ellipsis> v3.11.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.2/ class=md-nav__link> <span class=md-ellipsis> v3.11.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.1/ class=md-nav__link> <span class=md-ellipsis> v3.11.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.0/ class=md-nav__link> <span class=md-ellipsis> v3.11.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.5/ class=md-nav__link> <span class=md-ellipsis> v3.10.5 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.4/ class=md-nav__link> <span class=md-ellipsis> v3.10.4 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.3/ class=md-nav__link> <span class=md-ellipsis> v3.10.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.2/ class=md-nav__link> <span class=md-ellipsis> v3.10.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.1/ class=md-nav__link> <span class=md-ellipsis> v3.10.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.0/ class=md-nav__link> <span class=md-ellipsis> v3.10.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.9.1/ class=md-nav__link> <span class=md-ellipsis> v3.9.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.9.0/ class=md-nav__link> <span class=md-ellipsis> v3.9.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.8.0/ class=md-nav__link> <span class=md-ellipsis> v3.8.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.3/ class=md-nav__link> <span class=md-ellipsis> v3.7.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.2/ class=md-nav__link> <span class=md-ellipsis> v3.7.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.1/ class=md-nav__link> <span class=md-ellipsis> v3.7.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.0/ class=md-nav__link> <span class=md-ellipsis> v3.7.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.6.1/ class=md-nav__link> <span class=md-ellipsis> v3.6.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.6.0/ class=md-nav__link> <span class=md-ellipsis> v3.6.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.5.0/ class=md-nav__link> <span class=md-ellipsis> v3.5.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.4.0/ class=md-nav__link> <span class=md-ellipsis> v3.4.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.3.0/ class=md-nav__link> <span class=md-ellipsis> v3.3.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.2.0/ class=md-nav__link> <span class=md-ellipsis> v3.2.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.2/ class=md-nav__link> <span class=md-ellipsis> v3.1.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.1/ class=md-nav__link> <span class=md-ellipsis> v3.1.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.0/ class=md-nav__link> <span class=md-ellipsis> v3.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.0.1/ class=md-nav__link> <span class=md-ellipsis> v3.0.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.0.0/ class=md-nav__link> <span class=md-ellipsis> v3.0.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.1.1/ class=md-nav__link> <span class=md-ellipsis> v2.1.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.1.0/ class=md-nav__link> <span class=md-ellipsis> v2.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.10/ class=md-nav__link> <span class=md-ellipsis> v2.0.10 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.9/ class=md-nav__link> <span class=md-ellipsis> v2.0.9 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.8/ class=md-nav__link> <span class=md-ellipsis> v2.0.8 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.7/ class=md-nav__link> <span class=md-ellipsis> v2.0.7 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.6/ class=md-nav__link> <span class=md-ellipsis> v2.0.6 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.5/ class=md-nav__link> <span class=md-ellipsis> v2.0.5 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.4/ class=md-nav__link> <span class=md-ellipsis> v2.0.4 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.3/ class=md-nav__link> <span class=md-ellipsis> v2.0.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.2/ class=md-nav__link> <span class=md-ellipsis> v2.0.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.1/ class=md-nav__link> <span class=md-ellipsis> v2.0.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.0/ class=md-nav__link> <span class=md-ellipsis> v2.0.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v1.1.0/ class=md-nav__link> <span class=md-ellipsis> v1.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v1.0.0/ class=md-nav__link> <span class=md-ellipsis> v1.0.0 </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_1_6> <label class=md-nav__link for=__nav_1_6 id=__nav_1_6_label tabindex=0> <span class=md-ellipsis> Blog </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_1_6_label aria-expanded=false> <label class=md-nav__title for=__nav_1_6> <span class="md-nav__icon md-icon"></span> Blog </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../home/blog/how_3_13_0_got_faster/ class=md-nav__link> <span class=md-ellipsis> How 3.13.0 got faster </span> </a> </li> </ul> </nav> </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/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture </span> </a> </li> <li class=md-nav__item> <a href=../../../home/customers/ class=md-nav__link> <span class=md-ellipsis> Customers </span> </a> </li> <li class=md-nav__item> <a href=../../../home/sponsors/ class=md-nav__link> <span class=md-ellipsis> Sponsors </span> </a> </li> <li class=md-nav__item> <a href=../../../home/debugging/ class=md-nav__link> <span class=md-ellipsis> Debugging </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_2> <div class="md-nav__link md-nav__container"> <a href=../../../features/ class="md-nav__link "> <span class=md-ellipsis> Features </span> </a> <label class="md-nav__link " for=__nav_2 id=__nav_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <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=../../../features/arbitrary_types/ class=md-nav__link> <span class=md-ellipsis> Arbitrary Type Conversions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/type_recipes/ class=md-nav__link> <span class=md-ellipsis> Recipes for Common Types </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_4> <div class="md-nav__link md-nav__container"> <a href=../../../features/binary_formats/ class="md-nav__link "> <span class=md-ellipsis> Binary Formats </span> </a> <label class="md-nav__link " for=__nav_2_4 id=__nav_2_4_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_4_label aria-expanded=false> <label class=md-nav__title for=__nav_2_4> <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=../../../features/binary_formats/bjdata/ class=md-nav__link> <span class=md-ellipsis> BJData </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/bon8/ class=md-nav__link> <span class=md-ellipsis> BON8 </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/bson/ class=md-nav__link> <span class=md-ellipsis> BSON </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/cbor/ class=md-nav__link> <span class=md-ellipsis> CBOR </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/messagepack/ class=md-nav__link> <span class=md-ellipsis> MessagePack </span> </a> </li> <li class=md-nav__item> <a href=../../../features/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=../../../features/binary_values/ class=md-nav__link> <span class=md-ellipsis> Binary Values </span> </a> </li> <li class=md-nav__item> <a href=../../../features/comments/ class=md-nav__link> <span class=md-ellipsis> Comments </span> </a> </li> <li class=md-nav__item> <a href=../../../features/conversions/ class=md-nav__link> <span class=md-ellipsis> Converting values </span> </a> </li> <li class=md-nav__item> <a href=../../../features/creating_values/ class=md-nav__link> <span class=md-ellipsis> Creating JSON values </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_9> <div class="md-nav__link md-nav__container"> <a href=../../../features/element_access/ class="md-nav__link "> <span class=md-ellipsis> Element Access </span> </a> <label class="md-nav__link " for=__nav_2_9 id=__nav_2_9_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_9_label aria-expanded=false> <label class=md-nav__title for=__nav_2_9> <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=../../../features/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=../../../features/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=../../../features/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=../../../features/files/ class=md-nav__link> <span class=md-ellipsis> Reading and writing files </span> </a> </li> <li class=md-nav__item> <a href=../../../features/iterators/ class=md-nav__link> <span class=md-ellipsis> Iterators </span> </a> </li> <li class=md-nav__item> <a href=../../../features/merge_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Merge Patch </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Patch and Diff </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_pointer/ class=md-nav__link> <span class=md-ellipsis> JSON Pointer </span> </a> </li> <li class=md-nav__item> <a href=../../../features/modifying_values/ class=md-nav__link> <span class=md-ellipsis> Modifying values </span> </a> </li> <li class=md-nav__item> <a href=../../../features/modules/ class=md-nav__link> <span class=md-ellipsis> Modules </span> </a> </li> <li class=md-nav__item> <a href=../../../features/namespace/ class=md-nav__link> <span class=md-ellipsis> nlohmann Namespace </span> </a> </li> <li class=md-nav__item> <a href=../../../features/no_exceptions/ class=md-nav__link> <span class=md-ellipsis> Working Without Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/object_order/ class=md-nav__link> <span class=md-ellipsis> Object Order </span> </a> </li> <li class=md-nav__item> <a href=../../../features/performance/ class=md-nav__link> <span class=md-ellipsis> Performance </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_21> <div class="md-nav__link md-nav__container"> <a href=../../../features/parsing/ class="md-nav__link "> <span class=md-ellipsis> Parsing </span> </a> <label class="md-nav__link " for=__nav_2_21 id=__nav_2_21_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_21_label aria-expanded=false> <label class=md-nav__title for=__nav_2_21> <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=../../../features/parsing/json_lines/ class=md-nav__link> <span class=md-ellipsis> JSON Lines </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/large_and_partial_input/ class=md-nav__link> <span class=md-ellipsis> Large, Streamed, and Partial Input </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/parse_exceptions/ class=md-nav__link> <span class=md-ellipsis> Parsing and Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/parser_callbacks/ class=md-nav__link> <span class=md-ellipsis> Parser Callbacks </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/sax_interface/ class=md-nav__link> <span class=md-ellipsis> SAX Interface </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/untrusted_input/ class=md-nav__link> <span class=md-ellipsis> Parsing Untrusted Input </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../../features/assertions/ class=md-nav__link> <span class=md-ellipsis> Runtime Assertions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/serialization/ class=md-nav__link> <span class=md-ellipsis> Serialization </span> </a> </li> <li class=md-nav__item> <a href=../../../features/enum_conversion/ class=md-nav__link> <span class=md-ellipsis> Specializing enum conversion </span> </a> </li> <li class=md-nav__item> <a href=../../../features/macros/ class=md-nav__link> <span class=md-ellipsis> Supported Macros </span> </a> </li> <li class=md-nav__item> <a href=../../../features/trailing_commas/ class=md-nav__link> <span class=md-ellipsis> Trailing Commas </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_27> <div class="md-nav__link md-nav__container"> <a href=../../../features/types/ class="md-nav__link "> <span class=md-ellipsis> Types </span> </a> <label class="md-nav__link " for=__nav_2_27 id=__nav_2_27_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_27_label aria-expanded=false> <label class=md-nav__title for=__nav_2_27> <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=../../../features/types/number_handling/ class=md-nav__link> <span class=md-ellipsis> Number Handling </span> </a> </li> <li class=md-nav__item> <a href=../../../features/types/template_parameters/ class=md-nav__link> <span class=md-ellipsis> Template Parameter Requirements </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_2_28> <div class="md-nav__link md-nav__container"> <a href=../../../features/json_view/ class="md-nav__link "> <span class=md-ellipsis> Zero-copy views </span> </a> <label class="md-nav__link " for=__nav_2_28 id=__nav_2_28_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_28_label aria-expanded=false> <label class=md-nav__title for=__nav_2_28> <span class="md-nav__icon md-icon"></span> Zero-copy views </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/json_view/lifetime/ class=md-nav__link> <span class=md-ellipsis> Ownership and lifetime </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_view/differences/ class=md-nav__link> <span class=md-ellipsis> Differences from basic_json </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_view/reading/ class=md-nav__link> <span class=md-ellipsis> Reading values </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_view/generic_code/ class=md-nav__link> <span class=md-ellipsis> Writing generic code </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_view/editing/ class=md-nav__link> <span class=md-ellipsis> Editing a document </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_view/images/ class=md-nav__link> <span class=md-ellipsis> Images </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item 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=0> <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> <li class=md-nav__item> <a href=../../../integration/compile_times/ class=md-nav__link> <span class=md-ellipsis> Compile times </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_4 checked> <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=true> <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=../../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=../../basic_json/basic_json/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/~basic_json/ class=md-nav__link> <span class=md-ellipsis> (Destructor) </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/array/ class=md-nav__link> <span class=md-ellipsis> array </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/array_t/ class=md-nav__link> <span class=md-ellipsis> array_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/as_base_class/ class=md-nav__link> <span class=md-ellipsis> as_base_class </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/binary_t/ class=md-nav__link> <span class=md-ellipsis> binary_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/bjdata_version_t/ class=md-nav__link> <span class=md-ellipsis> bjdata_version_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/boolean_t/ class=md-nav__link> <span class=md-ellipsis> boolean_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/clear/ class=md-nav__link> <span class=md-ellipsis> clear </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/crbegin/ class=md-nav__link> <span class=md-ellipsis> crbegin </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/crend/ class=md-nav__link> <span class=md-ellipsis> crend </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/diff/ class=md-nav__link> <span class=md-ellipsis> diff </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/emplace/ class=md-nav__link> <span class=md-ellipsis> emplace </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/emplace_back/ class=md-nav__link> <span class=md-ellipsis> emplace_back </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/end_pos/ class=md-nav__link> <span class=md-ellipsis> end_pos </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/exception/ class=md-nav__link> <span class=md-ellipsis> exception </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/flatten/ class=md-nav__link> <span class=md-ellipsis> flatten </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/format_as/ class=md-nav__link> <span class=md-ellipsis> format_as </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_bjdata/ class=md-nav__link> <span class=md-ellipsis> from_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_bon8/ class=md-nav__link> <span class=md-ellipsis> from_bon8 </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_bson/ class=md-nav__link> <span class=md-ellipsis> from_bson </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_cbor/ class=md-nav__link> <span class=md-ellipsis> from_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_msgpack/ class=md-nav__link> <span class=md-ellipsis> from_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/from_ubjson/ class=md-nav__link> <span class=md-ellipsis> from_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get_allocator/ class=md-nav__link> <span class=md-ellipsis> get_allocator </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get_binary/ class=md-nav__link> <span class=md-ellipsis> get_binary </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get_ptr/ class=md-nav__link> <span class=md-ellipsis> get_ptr </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get_ref/ class=md-nav__link> <span class=md-ellipsis> get_ref </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/std_formatter/ class=md-nav__link> <span class=md-ellipsis> std::formatter&lt;basic_json&gt; </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../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=../../basic_json/insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/invalid_iterator/ class=md-nav__link> <span class=md-ellipsis> invalid_iterator </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../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=../../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=../../basic_json/is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/json_serializer/ class=md-nav__link> <span class=md-ellipsis> json_serializer </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/max_size/ class=md-nav__link> <span class=md-ellipsis> max_size </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/meta/ class=md-nav__link> <span class=md-ellipsis> meta </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/merge_diff/ class=md-nav__link> <span class=md-ellipsis> merge_diff </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/merge_patch/ class=md-nav__link> <span class=md-ellipsis> merge_patch </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../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=../../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=../../basic_json/object/ class=md-nav__link> <span class=md-ellipsis> object </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/object_t/ class=md-nav__link> <span class=md-ellipsis> object_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_ValueType/ class=md-nav__link> <span class=md-ellipsis> operator ValueType </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator%3D/ class=md-nav__link> <span class=md-ellipsis> operator= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator%2B%3D/ class=md-nav__link> <span class=md-ellipsis> operator+= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_lt/ class=md-nav__link> <span class=md-ellipsis> operator< </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_gt/ class=md-nav__link> <span class=md-ellipsis> operator> </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_le/ class=md-nav__link> <span class=md-ellipsis> operator<= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_ge/ class=md-nav__link> <span class=md-ellipsis> operator>= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/other_error/ class=md-nav__link> <span class=md-ellipsis> other_error </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../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=../../basic_json/patch/ class=md-nav__link> <span class=md-ellipsis> patch </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/patch_inplace/ class=md-nav__link> <span class=md-ellipsis> patch_inplace </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/rbegin/ class=md-nav__link> <span class=md-ellipsis> rbegin </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/rend/ class=md-nav__link> <span class=md-ellipsis> rend </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/sax_parse/ class=md-nav__link> <span class=md-ellipsis> sax_parse </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/start_pos/ class=md-nav__link> <span class=md-ellipsis> start_pos </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/swap/ class=md-nav__link> <span class=md-ellipsis> swap </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../basic_json/to_bjdata/ class=md-nav__link> <span class=md-ellipsis> to_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_bon8/ class=md-nav__link> <span class=md-ellipsis> to_bon8 </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_bson/ class=md-nav__link> <span class=md-ellipsis> to_bson </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_cbor/ class=md-nav__link> <span class=md-ellipsis> to_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_msgpack/ class=md-nav__link> <span class=md-ellipsis> to_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/to_ubjson/ class=md-nav__link> <span class=md-ellipsis> to_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/type_error/ class=md-nav__link> <span class=md-ellipsis> type_error </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/unflatten/ class=md-nav__link> <span class=md-ellipsis> unflatten </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/update/ class=md-nav__link> <span class=md-ellipsis> update </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/value/ class=md-nav__link> <span class=md-ellipsis> value </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/value_t/ class=md-nav__link> <span class=md-ellipsis> value_t </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json/with_t/ class=md-nav__link> <span class=md-ellipsis> with_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=../../basic_json_document/ class="md-nav__link "> <span class=md-ellipsis> basic_json_document </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> basic_json_document </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../basic_json_document/basic_json_document/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/load/ class=md-nav__link> <span class=md-ellipsis> load </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/memory_usage/ class=md-nav__link> <span class=md-ellipsis> memory_usage </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/node_count/ class=md-nav__link> <span class=md-ellipsis> node_count </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/owns_source/ class=md-nav__link> <span class=md-ellipsis> owns_source </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/parse_copy/ class=md-nav__link> <span class=md-ellipsis> parse_copy </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/read/ class=md-nav__link> <span class=md-ellipsis> read </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/root/ class=md-nav__link> <span class=md-ellipsis> root </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/save/ class=md-nav__link> <span class=md-ellipsis> save </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/set/ class=md-nav__link> <span class=md-ellipsis> set </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/shrink_to_fit/ class=md-nav__link> <span class=md-ellipsis> shrink_to_fit </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_document/source/ class=md-nav__link> <span class=md-ellipsis> source </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=../../basic_json_view/ class="md-nav__link "> <span class=md-ellipsis> basic_json_view </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> basic_json_view </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../basic_json_view/basic_json_view/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/get_string/ class=md-nav__link> <span class=md-ellipsis> get_string </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_number_float/ class=md-nav__link> <span class=md-ellipsis> is_number_float </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_number_integer/ class=md-nav__link> <span class=md-ellipsis> is_number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_number_unsigned/ class=md-nav__link> <span class=md-ellipsis> is_number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/materialize/ class=md-nav__link> <span class=md-ellipsis> materialize </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/number_format/ class=md-nav__link> <span class=md-ellipsis> number_format </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/number_token/ class=md-nav__link> <span class=md-ellipsis> number_token </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<< </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/source_offset/ class=md-nav__link> <span class=md-ellipsis> source_offset </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../../basic_json_view/value/ class=md-nav__link> <span class=md-ellipsis> value </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_4> <div class="md-nav__link md-nav__container"> <a href=../../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_4 id=__nav_4_4_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_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4_4> <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=../../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=../../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=../../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=../../byte_container_with_subtype/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../byte_container_with_subtype/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../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_5> <div class="md-nav__link md-nav__container"> <a href=../../adl_serializer/ class="md-nav__link "> <span class=md-ellipsis> adl_serializer </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> adl_serializer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../adl_serializer/from_json/ class=md-nav__link> <span class=md-ellipsis> from_json </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../is_json_view/ class=md-nav__link> <span class=md-ellipsis> is_json_view </span> </a> </li> <li class=md-nav__item> <a href=../../json/ class=md-nav__link> <span class=md-ellipsis> json </span> </a> </li> <li class=md-nav__item> <a href=../../json_document/ class=md-nav__link> <span class=md-ellipsis> json_document </span> </a> </li> <li class=md-nav__item> <a href=../../json_editable_document/ class=md-nav__link> <span class=md-ellipsis> json_editable_document </span> </a> </li> <li class=md-nav__item> <a href=../../json_editable_view/ class=md-nav__link> <span class=md-ellipsis> json_editable_view </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_11> <div class="md-nav__link md-nav__container"> <a href=../../json_pointer/ class="md-nav__link "> <span class=md-ellipsis> json_pointer </span> </a> <label class="md-nav__link " for=__nav_4_11 id=__nav_4_11_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_11_label aria-expanded=false> <label class=md-nav__title for=__nav_4_11> <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=../../json_pointer/json_pointer/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../json_pointer/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_slash/ class=md-nav__link> <span class=md-ellipsis> operator/ </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_slasheq/ class=md-nav__link> <span class=md-ellipsis> operator/= </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/parent_pointer/ class=md-nav__link> <span class=md-ellipsis> parent_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/pop_back/ class=md-nav__link> <span class=md-ellipsis> pop_back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/pop_front/ class=md-nav__link> <span class=md-ellipsis> pop_front </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/push_front/ class=md-nav__link> <span class=md-ellipsis> push_front </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../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_12> <div class="md-nav__link md-nav__container"> <a href=../../json_sax/ class="md-nav__link "> <span class=md-ellipsis> json_sax </span> </a> <label class="md-nav__link " for=__nav_4_12 id=__nav_4_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_4_12_label aria-expanded=false> <label class=md-nav__title for=__nav_4_12> <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=../../json_sax/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/boolean/ class=md-nav__link> <span class=md-ellipsis> boolean </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/end_array/ class=md-nav__link> <span class=md-ellipsis> end_array </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/end_object/ class=md-nav__link> <span class=md-ellipsis> end_object </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/key/ class=md-nav__link> <span class=md-ellipsis> key </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/null/ class=md-nav__link> <span class=md-ellipsis> null </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_float/ class=md-nav__link> <span class=md-ellipsis> number_float </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_integer/ class=md-nav__link> <span class=md-ellipsis> number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_unsigned/ class=md-nav__link> <span class=md-ellipsis> number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/start_array/ class=md-nav__link> <span class=md-ellipsis> start_array </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/start_object/ class=md-nav__link> <span class=md-ellipsis> start_object </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../json_view/ class=md-nav__link> <span class=md-ellipsis> json_view </span> </a> </li> <li class=md-nav__item> <a href=../../operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<<(basic_json), operator<<(json_pointer) </span> </a> </li> <li class=md-nav__item> <a href=../../operator_gtgt/ class=md-nav__link> <span class=md-ellipsis> operator>>(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../operator_literal_json/ class=md-nav__link> <span class=md-ellipsis> operator""_json </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../ordered_json/ class=md-nav__link> <span class=md-ellipsis> ordered_json </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_json_document/ class=md-nav__link> <span class=md-ellipsis> ordered_json_document </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_json_editable_document/ class=md-nav__link> <span class=md-ellipsis> ordered_json_editable_document </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_json_editable_view/ class=md-nav__link> <span class=md-ellipsis> ordered_json_editable_view </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_json_view/ class=md-nav__link> <span class=md-ellipsis> ordered_json_view </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_map/ class=md-nav__link> <span class=md-ellipsis> ordered_map </span> </a> </li> <li class=md-nav__item> <a href=../../view_mode/ class=md-nav__link> <span class=md-ellipsis> view_mode </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_25 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> macros </span> </a> <label class="md-nav__link " for=__nav_4_25 id=__nav_4_25_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_25_label aria-expanded=true> <label class=md-nav__title for=__nav_4_25> <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=../json_assert/ class=md-nav__link> <span class=md-ellipsis> JSON_ASSERT </span> </a> </li> <li class=md-nav__item> <a href=../json_brace_init_copy_semantics/ class=md-nav__link> <span class=md-ellipsis> JSON_BRACE_INIT_COPY_SEMANTICS </span> </a> </li> <li class=md-nav__item> <a href=../json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_CATCH_USER, JSON_THROW_USER, JSON_TRY_USER </span> </a> </li> <li class=md-nav__item> <a href=../json_diagnostics/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTICS </span> </a> </li> <li class=md-nav__item> <a href=../json_delete_deprecated_functions/ class=md-nav__link> <span class=md-ellipsis> JSON_DELETE_DEPRECATED_FUNCTIONS </span> </a> </li> <li class=md-nav__item> <a href=../json_diagnostic_positions/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTIC_POSITIONS </span> </a> </li> <li class=md-nav__item> <a href=../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=../json_disable_stream_bulk_scan/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_STREAM_BULK_SCAN </span> </a> </li> <li class=md-nav__item> <a href=../json_disable_tuple_reference_conversion/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_TUPLE_REFERENCE_CONVERSION </span> </a> </li> <li class=md-nav__item> <a href=../json_disable_unlocked_file_io/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_UNLOCKED_FILE_IO </span> </a> </li> <li class=md-nav__item> <a href=../json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20, JSON_HAS_CPP_23, JSON_HAS_CPP_26 </span> </a> </li> <li class=md-nav__item> <a href=../json_has_filesystem/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_EXPERIMENTAL_FILESYSTEM, JSON_HAS_FILESYSTEM </span> </a> </li> <li class=md-nav__item> <a href=../json_has_range_view_conversion/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_RANGE_VIEW_CONVERSION </span> </a> </li> <li class=md-nav__item> <a href=../json_has_ranges/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_RANGES </span> </a> </li> <li class=md-nav__item> <a href=../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=../json_has_std_format/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_STD_FORMAT </span> </a> </li> <li class=md-nav__item> <a href=../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=../json_no_automatic_udls/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_AUTOMATIC_UDLS </span> </a> </li> <li class=md-nav__item> <a href=../json_noexception/ class=md-nav__link> <span class=md-ellipsis> JSON_NOEXCEPTION </span> </a> </li> <li class=md-nav__item> <a href=../json_no_io/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_IO </span> </a> </li> <li class=md-nav__item> <a href=../json_no_simd/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_SIMD </span> </a> </li> <li class=md-nav__item> <a href=../json_no_thread_local/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_THREAD_LOCAL </span> </a> </li> <li class=md-nav__item> <a href=../json_precise_stream_position/ class=md-nav__link> <span class=md-ellipsis> JSON_PRECISE_STREAM_POSITION </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> JSON_RECURSION_DEPTH_LIMIT </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> JSON_RECURSION_DEPTH_LIMIT </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=#default-definition class=md-nav__link> <span class=md-ellipsis> Default definition </span> </a> </li> <li class=md-nav__item> <a href=#notes class=md-nav__link> <span class=md-ellipsis> Notes </span> </a> <nav class=md-nav aria-label=Notes> <ul class=md-nav__list> <li class=md-nav__item> <a href=#stack-needed class=md-nav__link> <span class=md-ellipsis> Stack needed </span> </a> </li> <li class=md-nav__item> <a href=#speed class=md-nav__link> <span class=md-ellipsis> Speed </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#examples class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See also </span> </a> </li> <li class=md-nav__item> <a href=#version-history class=md-nav__link> <span class=md-ellipsis> Version history </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../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=../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=../json_strict_binary_utf8/ class=md-nav__link> <span class=md-ellipsis> JSON_STRICT_BINARY_UTF8 </span> </a> </li> <li class=md-nav__item> <a href=../json_strict_nul_handling/ class=md-nav__link> <span class=md-ellipsis> JSON_STRICT_NUL_HANDLING </span> </a> </li> <li class=md-nav__item> <a href=../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=../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=../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=../json_use_objects_for_enum_keyed_maps/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS </span> </a> </li> <li class=md-nav__item> <a href=../json_use_simdutf/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_SIMDUTF </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_define_derived_type/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_define_type_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_define_type_non_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_define_type_with_names/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_json_namespace/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_json_namespace_begin/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END </span> </a> </li> <li class=md-nav__item> <a href=../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=../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=../nlohmann_json_serialize_enum_strict/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_SERIALIZE_ENUM_STRICT </span> </a> </li> <li class=md-nav__item> <a href=../nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5> <div class="md-nav__link md-nav__container"> <a href=../../../community/ class="md-nav__link "> <span class=md-ellipsis> Community </span> </a> <label class="md-nav__link " for=__nav_5 id=__nav_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Community </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../community/ecosystem/ class=md-nav__link> <span class=md-ellipsis> Ecosystem </span> </a> </li> <li class=md-nav__item> <a href=../../../community/code_of_conduct/ class=md-nav__link> <span class=md-ellipsis> Code of Conduct </span> </a> </li> <li class=md-nav__item> <a href=../../../community/contribution_guidelines/ class=md-nav__link> <span class=md-ellipsis> Contribution Guidelines </span> </a> </li> <li class=md-nav__item> <a href=../../../community/quality_assurance/ class=md-nav__link> <span class=md-ellipsis> Quality assurance </span> </a> </li> <li class=md-nav__item> <a href=../../../community/governance/ class=md-nav__link> <span class=md-ellipsis> Governance </span> </a> </li> <li class=md-nav__item> <a href=../../../community/roadmap/ class=md-nav__link> <span class=md-ellipsis> Roadmap </span> </a> </li> <li class=md-nav__item> <a href=../../../community/security_policy/ class=md-nav__link> <span class=md-ellipsis> Security Policy </span> </a> </li> <li class=md-nav__item> <a href=../../../community/assurance_case/ class=md-nav__link> <span class=md-ellipsis> Assurance case </span> </a> </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=#default-definition class=md-nav__link> <span class=md-ellipsis> Default definition </span> </a> </li> <li class=md-nav__item> <a href=#notes class=md-nav__link> <span class=md-ellipsis> Notes </span> </a> <nav class=md-nav aria-label=Notes> <ul class=md-nav__list> <li class=md-nav__item> <a href=#stack-needed class=md-nav__link> <span class=md-ellipsis> Stack needed </span> </a> </li> <li class=md-nav__item> <a href=#speed class=md-nav__link> <span class=md-ellipsis> Speed </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#examples class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See also </span> </a> </li> <li class=md-nav__item> <a href=#version-history class=md-nav__link> <span class=md-ellipsis> Version history </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <a href="https://github.com/nlohmann/json/edit/develop/docs/mkdocs/docs/api/macros/json_recursion_depth_limit.md" title="Edit this page" class="md-content__button md-icon" rel="edit"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg> </a> <a href="https://github.com/nlohmann/json/raw/develop/docs/mkdocs/docs/api/macros/json_recursion_depth_limit.md" title="View source of this page" class="md-content__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg> </a> <h1 id=json_recursion_depth_limit>JSON_RECURSION_DEPTH_LIMIT<a class=headerlink href=#json_recursion_depth_limit title="Permanent link">&para;</a></h1> <div class=highlight><pre><span></span><code><span class=cp>#define JSON_RECURSION_DEPTH_LIMIT </span><span class=cm>/* value */</span>
</code></pre></div> <p>This macro sets how many nesting levels the operations that walk a value recurse into on the call stack. Beyond that, they continue with an explicit stack on the heap. The value is an integer constant from <code>0</code> to <code>254</code>; the default is <code>128</code>.</p> <p>The operations are copying a value, comparing two values, serializing with <a href=../../basic_json/dump/ ><code>dump</code></a> or <a href=../../operator_ltlt/ ><code>operator&lt;&lt;</code></a>, hashing with <code>std::hash</code>, <a href=../../basic_json/merge_patch/ ><code>merge_patch</code></a>, <a href=../../basic_json/update/ ><code>update</code></a> with <code>merge_objects</code>, <a href=../../basic_json/diff/ ><code>diff</code></a>, <a href=../../basic_json/merge_diff/ ><code>merge_diff</code></a>, converting a value to another specialization of <code>basic_json</code>, destroying a value, and the binary writers <a href=../../basic_json/to_cbor/ ><code>to_cbor</code></a>, <a href=../../basic_json/to_msgpack/ ><code>to_msgpack</code></a>, <a href=../../basic_json/to_ubjson/ ><code>to_ubjson</code></a>, <a href=../../basic_json/to_bjdata/ ><code>to_bjdata</code></a>, and <a href=../../basic_json/to_bon8/ ><code>to_bon8</code></a>. They share this one limit; none has a limit of its own. Recursing is the fastest way to walk a value, but a value nested deeply enough would exhaust the call stack, so the library recurses only as far as the limit and finishes the levels below with an explicit stack. This is what makes all of them safe for untrusted input (see <a href=../../../features/parsing/untrusted_input/#nesting-depth>Nesting depth</a>). Parsing, the binary readers, <a href=../../basic_json/flatten/ ><code>flatten</code></a>, <a href=../../basic_json/unflatten/ ><code>unflatten</code></a>, and <a href=../../basic_json/to_bson/ ><code>to_bson</code></a> always use an explicit stack and do not depend on the macro. The lockstep comparison of two <a href=../../basic_json_view/ ><code>json_view</code></a> documents has a fixed bound of its own, 48 levels, and does not depend on it either.</p> <p>The call stack that these operations need grows with the limit: roughly <em>a few kilobytes plus a cost per level times the limit</em>, where the cost per level is up to about 2.3 KiB in an unoptimized and up to about 0.5 KiB in an optimized build (see <a href=#stack-needed>Stack needed</a>). The default of <code>128</code> levels is tuned for threads with ordinary stacks of a few hundred kilobytes or more. Set a lower limit if your threads have small stacks (RTOS tasks, fibers, threads of the musl C library, which has a default stack of 128 KiB), or a higher limit to trade stack for speed on deeply nested values.</p> <p>The macro changes only how much stack is used and how fast the operations are. It never changes a result: every operation returns the same value for every setting of the limit, for values nested less deeply than the limit as well as for values nested more deeply.</p> <h2 id=default-definition>Default definition<a class=headerlink href=#default-definition title="Permanent link">&para;</a></h2> <p>The default value is <code>128</code>.</p> <div class=highlight><pre><span></span><code><span class=cp>#define JSON_RECURSION_DEPTH_LIMIT 128</span>
</code></pre></div> <p>When the macro is not defined, the library defines it to its default value.</p> <h2 id=notes>Notes<a class=headerlink href=#notes title="Permanent link">&para;</a></h2> <div class="admonition note"> <p class=admonition-title>Allowed values</p> <p>The value must be an integer constant expression from <code>0</code> to <code>254</code>; any other value (a negative number, a number above <code>254</code>, a floating-point number such as <code>254.0</code>, or <code>true</code> or <code>false</code>) is rejected at compile time with an error message that names the macro. A character of any character type (<code>'a'</code>, <code>L'a'</code>, <code>u8'a'</code>, ...) is rejected, too, although it is an integer.</p> <ul> <li><code>0</code> is allowed, and means that every operation uses its explicit stack from the first level on and no operation recurses over the nesting of a value at all. That needs a constant amount of call stack (at most 16 KiB in the measurements below, for a value nested 20,000 levels deep) and is the setting for tiny stacks, at the price of speed (see <a href=#speed>Speed</a>).</li> <li><code>254</code> is the largest allowed value. Copying a value and comparing two values (with <code>&lt;=&gt;</code>, or with the operators on objects and arrays of a custom type) cannot pass the depth down as an argument, because the signatures of the copy constructor and the operators are fixed. They count the levels they have descended into in a variable of type <code class=highlight><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span></code> that exists once per thread (see <a href=../json_no_thread_local/ ><code>JSON_NO_THREAD_LOCAL</code></a>). Only the levels that are descended into are counted, so the count never exceeds the limit, not even when user code (a copy constructor of a custom base class, say) copies a value while a copy is going on. A byte holds <code>255</code> at most, and the limit stays below that, so that the count cannot wrap around. (More levels would hardly be useful: <code>254</code> levels need up to 576 KiB of stack in an unoptimized build already, twice as much as the default.)</li> </ul> </div> <h3 id=stack-needed>Stack needed<a class=headerlink href=#stack-needed title="Permanent link">&para;</a></h3> <p>The tables show the smallest stack that an operation needs, in KiB, at several limits, on a value that is nested more deeply than the limit (limit + 10 levels). Each cell shows the result for Clang (Apple clang 21) and for <abbr title="GNU Compiler Collection">GCC</abbr> 16, separated by a slash; both measured on macOS with arm64, compiling in C++20 mode. The operations run in a thread whose stack has the size given, and are not given any stack that they do not need: the value is built, and the result destroyed, outside of that thread. Stacks can only be set in steps of 16 KiB (the page size), so <code>16</code> means "16 KiB or less". A row stands for all operations listed; the table shows the largest value among them.</p> <p>Unoptimized (<code>-O0</code>):</p> <table> <thead> <tr> <th>Operation</th> <th style="text-align: right;">limit 16</th> <th style="text-align: right;">limit 32</th> <th style="text-align: right;">limit 64</th> <th style="text-align: right;">limit 128</th> <th style="text-align: right;">limit 254</th> </tr> </thead> <tbody> <tr> <td><code>dump()</code> and <code>dump(indent)</code>, <code>operator&lt;&lt;</code></td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">80 / 64</td> <td style="text-align: right;">144 / 128</td> <td style="text-align: right;">288 / 256</td> <td style="text-align: right;">576 / 512</td> </tr> <tr> <td>copy construction and assignment</td> <td style="text-align: right;">32 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">112 / 80</td> <td style="text-align: right;">224 / 144</td> <td style="text-align: right;">432 / 304</td> </tr> <tr> <td><code>==</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">96 / 48</td> </tr> <tr> <td><code>&lt;=&gt;</code> (C++20)</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">64 / 64</td> <td style="text-align: right;">144 / 128</td> </tr> <tr> <td><code>std::hash</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">80 / 64</td> <td style="text-align: right;">160 / 128</td> </tr> <tr> <td><code>merge_patch</code>, <code>update(j, true)</code>, <code>patch</code></td> <td style="text-align: right;">32 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">112 / 80</td> <td style="text-align: right;">224 / 144</td> <td style="text-align: right;">432 / 304</td> </tr> <tr> <td><code>diff</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">64 / 48</td> <td style="text-align: right;">144 / 96</td> </tr> <tr> <td><code>merge_diff</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">80 / 48</td> <td style="text-align: right;">176 / 112</td> <td style="text-align: right;">352 / 224</td> </tr> <tr> <td><code>to_cbor</code>, <code>to_msgpack</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 16</td> <td style="text-align: right;">64 / 32</td> <td style="text-align: right;">112 / 80</td> <td style="text-align: right;">224 / 160</td> </tr> <tr> <td><code>to_ubjson</code>, <code>to_bjdata</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">96 / 64</td> <td style="text-align: right;">176 / 112</td> </tr> <tr> <td><code>to_bon8</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 16</td> <td style="text-align: right;">64 / 48</td> </tr> <tr> <td>conversion to another <code>basic_json</code> type</td> <td style="text-align: right;">32 / 16</td> <td style="text-align: right;">64 / 32</td> <td style="text-align: right;">112 / 80</td> <td style="text-align: right;">224 / 144</td> <td style="text-align: right;">448 / 304</td> </tr> <tr> <td>destruction</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> </tr> </tbody> </table> <p>Optimized (<code>-O2</code>):</p> <table> <thead> <tr> <th>Operation</th> <th style="text-align: right;">limit 16</th> <th style="text-align: right;">limit 32</th> <th style="text-align: right;">limit 64</th> <th style="text-align: right;">limit 128</th> <th style="text-align: right;">limit 254</th> </tr> </thead> <tbody> <tr> <td><code>dump()</code> and <code>dump(indent)</code>, <code>operator&lt;&lt;</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> </tr> <tr> <td>copy construction and assignment</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">64 / 48</td> </tr> <tr> <td><code>==</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> </tr> <tr> <td><code>&lt;=&gt;</code> (C++20)</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">48 / 16</td> </tr> <tr> <td><code>std::hash</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 48</td> <td style="text-align: right;">80 / 80</td> </tr> <tr> <td><code>merge_patch</code>, <code>update(j, true)</code>, <code>patch</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">64 / 48</td> </tr> <tr> <td><code>diff</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 32</td> <td style="text-align: right;">48 / 48</td> <td style="text-align: right;">96 / 112</td> </tr> <tr> <td><code>merge_diff</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">48 / 32</td> <td style="text-align: right;">96 / 64</td> </tr> <tr> <td><code>to_cbor</code>, <code>to_msgpack</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> </tr> <tr> <td><code>to_ubjson</code>, <code>to_bjdata</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 32</td> <td style="text-align: right;">64 / 64</td> </tr> <tr> <td><code>to_bon8</code></td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 32</td> <td style="text-align: right;">32 / 64</td> </tr> <tr> <td>conversion to another <code>basic_json</code> type</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">32 / 48</td> <td style="text-align: right;">64 / 96</td> </tr> <tr> <td>destruction</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> <td style="text-align: right;">16 / 16</td> </tr> </tbody> </table> <p>With a limit of <code>0</code>, every operation in the tables ran in a 16 KiB stack at <code>-O0</code> (Clang and <abbr title="GNU Compiler Collection">GCC</abbr>), on a value nested 20,000 levels deep. The operations that do not depend on the macro (<code>flatten</code>, <code>unflatten</code>, <code>to_bson</code>) needed 16 KiB or less at every limit.</p> <p>The rule of thumb is</p> <blockquote> <p>stack needed ≈ a few KiB + cost per level × limit</p> </blockquote> <p>with a cost per level of up to 2.3 KiB (<code>dump</code> at <code>-O0</code> with Clang; 2.1 KiB with <abbr title="GNU Compiler Collection">GCC</abbr>), 1.7 KiB for copying and merging (1.3 KiB with <abbr title="GNU Compiler Collection">GCC</abbr>), and 0.1 to 0.5 KiB for most other operations at <code>-O0</code>; and 0.5 KiB or less at <code>-O2</code>. The numbers come from the difference between the limits <code>128</code> and <code>254</code> in the tables, so they are rough: other compilers, other targets (the frames of x86-64 code are about as large), other standard libraries, <code>JSON_DIAGNOSTICS</code>, and sanitizers change them. Measure with your own tool chain (see the example below) rather than relying on the tables. The stack that your own code and the operating system need comes on top of these numbers.</p> <p>Which limit to choose, for the stack that you can spare for the library (the largest limit of those measured for which the slowest operation needs at most that much):</p> <table> <thead> <tr> <th>Stack for the library</th> <th style="text-align: right;">optimized (<code>-O2</code>)</th> <th style="text-align: right;">unoptimized (<code>-O0</code>)</th> </tr> </thead> <tbody> <tr> <td>32 KiB</td> <td style="text-align: right;">64</td> <td style="text-align: right;">0</td> </tr> <tr> <td>64 KiB</td> <td style="text-align: right;">128</td> <td style="text-align: right;">16</td> </tr> <tr> <td>128 KiB (the default stack of threads on musl)</td> <td style="text-align: right;">254</td> <td style="text-align: right;">32</td> </tr> <tr> <td>256 KiB</td> <td style="text-align: right;">254</td> <td style="text-align: right;">64</td> </tr> <tr> <td>512 KiB</td> <td style="text-align: right;">254</td> <td style="text-align: right;">128</td> </tr> <tr> <td>1 MiB or more</td> <td style="text-align: right;">254</td> <td style="text-align: right;">254</td> </tr> </tbody> </table> <h3 id=speed>Speed<a class=headerlink href=#speed title="Permanent link">&para;</a></h3> <p>Operations are faster the more of a value they handle with plain recursion. The levels below the limit are handled with an explicit stack, which has to be kept on the heap and costs more per level. The macro therefore trades speed against stack.</p> <p>The table shows the time of copying a value (including destroying the copy), of <code>==</code> on two equal values, of <code>dump</code>, and of <code>std::hash</code> for several limits, relative to the default of <code>128</code> (<code>1.00</code> means the same time; more is slower). It was measured with Clang 21 at <code>-O2</code> in C++17 mode on macOS with arm64, as the best of seven runs of each setting (two rounds, best of both). The documents are ordinary <abbr title="JavaScript Object Notation">JSON</abbr> files that are nested 7 (<code>canada.json</code>), 8 (<code>citm_catalog.json</code>), 10 (<code>twitter.json</code>), and 2 levels deep (<code>jeopardy.json</code>); the other values are one array or object with one member per level, nested 1,000 and 100,000 levels deep. The absolute time at the limit <code>128</code> is given in the third column. Differences of up to about 0.1 are noise: a different limit changes the layout of the compiled code, and timings of the same binary vary by about as much. The slow columns (limits 0 and 1) vary more: repeating <code>std::hash</code> on <code>canada.json</code> gave 1.27 to 1.30 for limit 0 and 1.4 to 1.9 for limit 1, so read the cells of those two columns as accurate to about 0.3.</p> <table> <thead> <tr> <th>Value</th> <th>Operation</th> <th style="text-align: right;">limit 128 (absolute)</th> <th style="text-align: right;">limit 0</th> <th style="text-align: right;">limit 1</th> <th style="text-align: right;">limit 16</th> <th style="text-align: right;">limit 254</th> </tr> </thead> <tbody> <tr> <td><code>canada.json</code> (2.1 MB)</td> <td>copy</td> <td style="text-align: right;">3.5 ms</td> <td style="text-align: right;">1.80</td> <td style="text-align: right;">1.80</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>canada.json</code> (2.1 MB)</td> <td><code>==</code></td> <td style="text-align: right;">350.5 µs</td> <td style="text-align: right;">2.36</td> <td style="text-align: right;">2.38</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td><code>canada.json</code> (2.1 MB)</td> <td><code>dump</code></td> <td style="text-align: right;">2.4 ms</td> <td style="text-align: right;">1.11</td> <td style="text-align: right;">1.11</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>canada.json</code> (2.1 MB)</td> <td><code>std::hash</code></td> <td style="text-align: right;">920.2 µs</td> <td style="text-align: right;">1.33</td> <td style="text-align: right;">1.59</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>citm_catalog.json</code> (1.7 MB)</td> <td>copy</td> <td style="text-align: right;">1.8 ms</td> <td style="text-align: right;">1.38</td> <td style="text-align: right;">1.36</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td><code>citm_catalog.json</code> (1.7 MB)</td> <td><code>==</code></td> <td style="text-align: right;">275.5 µs</td> <td style="text-align: right;">1.31</td> <td style="text-align: right;">1.31</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>citm_catalog.json</code> (1.7 MB)</td> <td><code>dump</code></td> <td style="text-align: right;">314.6 µs</td> <td style="text-align: right;">1.24</td> <td style="text-align: right;">1.23</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>citm_catalog.json</code> (1.7 MB)</td> <td><code>std::hash</code></td> <td style="text-align: right;">309.1 µs</td> <td style="text-align: right;">1.77</td> <td style="text-align: right;">1.42</td> <td style="text-align: right;">1.06</td> <td style="text-align: right;">1.05</td> </tr> <tr> <td><code>twitter.json</code> (0.6 MB)</td> <td>copy</td> <td style="text-align: right;">865.7 µs</td> <td style="text-align: right;">1.45</td> <td style="text-align: right;">1.47</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>twitter.json</code> (0.6 MB)</td> <td><code>==</code></td> <td style="text-align: right;">135.8 µs</td> <td style="text-align: right;">1.26</td> <td style="text-align: right;">1.23</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>twitter.json</code> (0.6 MB)</td> <td><code>dump</code></td> <td style="text-align: right;">224.6 µs</td> <td style="text-align: right;">1.12</td> <td style="text-align: right;">1.12</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>twitter.json</code> (0.6 MB)</td> <td><code>std::hash</code></td> <td style="text-align: right;">132.9 µs</td> <td style="text-align: right;">1.28</td> <td style="text-align: right;">1.27</td> <td style="text-align: right;">1.03</td> <td style="text-align: right;">1.04</td> </tr> <tr> <td><code>jeopardy.json</code> (53 MB)</td> <td>copy</td> <td style="text-align: right;">111.1 ms</td> <td style="text-align: right;">1.22</td> <td style="text-align: right;">1.25</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>jeopardy.json</code> (53 MB)</td> <td><code>==</code></td> <td style="text-align: right;">23.5 ms</td> <td style="text-align: right;">1.29</td> <td style="text-align: right;">1.53</td> <td style="text-align: right;">1.07</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td><code>jeopardy.json</code> (53 MB)</td> <td><code>dump</code></td> <td style="text-align: right;">33.2 ms</td> <td style="text-align: right;">1.14</td> <td style="text-align: right;">1.34</td> <td style="text-align: right;">1.03</td> <td style="text-align: right;">1.01</td> </tr> <tr> <td><code>jeopardy.json</code> (53 MB)</td> <td><code>std::hash</code></td> <td style="text-align: right;">19.9 ms</td> <td style="text-align: right;">1.17</td> <td style="text-align: right;">1.52</td> <td style="text-align: right;">1.05</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td>arrays, 1,000 levels</td> <td>copy</td> <td style="text-align: right;">69.9 µs</td> <td style="text-align: right;">0.95</td> <td style="text-align: right;">0.98</td> <td style="text-align: right;">0.92</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td>arrays, 1,000 levels</td> <td><code>==</code></td> <td style="text-align: right;">10.4 µs</td> <td style="text-align: right;">1.02</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">0.96</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td>arrays, 1,000 levels</td> <td><code>dump</code></td> <td style="text-align: right;">9.6 µs</td> <td style="text-align: right;">0.97</td> <td style="text-align: right;">0.96</td> <td style="text-align: right;">0.97</td> <td style="text-align: right;">1.06</td> </tr> <tr> <td>arrays, 1,000 levels</td> <td><code>std::hash</code></td> <td style="text-align: right;">16.9 µs</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">0.98</td> </tr> <tr> <td>objects, 1,000 levels</td> <td>copy</td> <td style="text-align: right;">77.1 µs</td> <td style="text-align: right;">0.98</td> <td style="text-align: right;">0.97</td> <td style="text-align: right;">0.97</td> <td style="text-align: right;">1.03</td> </tr> <tr> <td>objects, 1,000 levels</td> <td><code>==</code></td> <td style="text-align: right;">12.0 µs</td> <td style="text-align: right;">0.96</td> <td style="text-align: right;">0.95</td> <td style="text-align: right;">0.95</td> <td style="text-align: right;">1.07</td> </tr> <tr> <td>objects, 1,000 levels</td> <td><code>dump</code></td> <td style="text-align: right;">12.6 µs</td> <td style="text-align: right;">0.97</td> <td style="text-align: right;">0.95</td> <td style="text-align: right;">0.98</td> <td style="text-align: right;">1.01</td> </tr> <tr> <td>objects, 1,000 levels</td> <td><code>std::hash</code></td> <td style="text-align: right;">17.3 µs</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">0.98</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td>arrays, 100,000 levels</td> <td>copy</td> <td style="text-align: right;">6.4 ms</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> <tr> <td>arrays, 100,000 levels</td> <td><code>==</code></td> <td style="text-align: right;">1.1 ms</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.03</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.06</td> </tr> <tr> <td>arrays, 100,000 levels</td> <td><code>dump</code></td> <td style="text-align: right;">917.9 µs</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">1.02</td> <td style="text-align: right;">1.01</td> </tr> <tr> <td>arrays, 100,000 levels</td> <td><code>std::hash</code></td> <td style="text-align: right;">1.7 ms</td> <td style="text-align: right;">1.04</td> <td style="text-align: right;">1.05</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td>objects, 100,000 levels</td> <td>copy</td> <td style="text-align: right;">7.5 ms</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">1.02</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td>objects, 100,000 levels</td> <td><code>==</code></td> <td style="text-align: right;">1.3 ms</td> <td style="text-align: right;">1.02</td> <td style="text-align: right;">1.09</td> <td style="text-align: right;">1.08</td> <td style="text-align: right;">0.96</td> </tr> <tr> <td>objects, 100,000 levels</td> <td><code>dump</code></td> <td style="text-align: right;">1.2 ms</td> <td style="text-align: right;">1.06</td> <td style="text-align: right;">0.99</td> <td style="text-align: right;">1.01</td> <td style="text-align: right;">0.99</td> </tr> <tr> <td>objects, 100,000 levels</td> <td><code>std::hash</code></td> <td style="text-align: right;">1.8 ms</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> <td style="text-align: right;">1.00</td> </tr> </tbody> </table> <p>The results are as follows.</p> <ul> <li>A limit of <code>16</code> or more does not change the speed of ordinary documents (differences are within noise), because they are not nested more deeply than that anyway. A document nested more deeply than the limit is walked partly with the explicit stack.</li> <li>A limit of <code>0</code> or <code>1</code> makes the operations on ordinary documents 1.1 to 2.4 times as slow, because even their first levels are handled with the explicit stack. The slowdown is largest for <code>==</code> on a document of many small containers (<code>canada.json</code>: 2.4 times) and for copying (up to 1.8 times).</li> <li>For values that are nested far more deeply than any limit (1,000 and 100,000 levels deep), the limit makes no measurable difference: almost all of the levels are handled with the explicit stack for every setting. Raising the limit gains nothing for them, and lowering it costs nothing.</li> </ul> <div class="admonition note"> <p class=admonition-title>Other macros</p> <ul> <li>With <a href=../json_no_thread_local/ ><code>JSON_NO_THREAD_LOCAL</code></a> defined (or for Clang targeting <abbr title="Minimalist GNU for Windows">MinGW</abbr>, where the library defines it by itself), copying and comparing never descend, so for them the limit does not matter. The other operations still recurse as many levels as the limit says. The range of the limit is the same.</li> <li>The macro is not part of the <a href=../../../features/namespace/ ><abbr title="Application Binary Interface">ABI</abbr> tag</a>, as <code>JSON_NO_THREAD_LOCAL</code> is not, and it is not undefined at the end of <code>json.hpp</code>.</li> </ul> </div> <div class="admonition warning"> <p class=admonition-title>Use the same value in every translation unit</p> <p>All translation units of a program that include the library must define the same value. Otherwise, the program violates the One Definition Rule: the function <code>nlohmann::detail::recursion_depth_limit()</code> and all the functions that use it are defined differently in different translation units. Which limit a call uses then depends on which functions the compiler inlined (an inlined copy uses the value of its own translation unit) and which out-of-line copy of each remaining function the linker kept, which is not specified. A function compiled with one value can call a function compiled with another, so a single operation can mix both limits.</p> <p>Mixing values cannot corrupt the byte per thread that counts the levels of copying and comparing: each limit is at most <code>254</code>, and all of them stop counting at their own limit, so the count never exceeds <code>254</code>, whichever translation unit's definition runs. The counter exists once per thread and <code>basic_json</code> specialization, and is shared by all translation units. Nor can mixing values change any result, as no result depends on the limit. What changes is how much stack is used and how fast the operations are. Nevertheless, avoid it: the program has undefined behavior as far as the C++ standard is concerned.</p> </div> <h2 id=examples>Examples<a class=headerlink href=#examples title="Permanent link">&para;</a></h2> <details class=example> <summary>Example: lower the limit</summary> <p>The example nests an array 5,000 levels deep. With the limit set to 16, the library recurses over the first 16 levels and over the rest uses an explicit stack. The results are those of the default limit.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;functional&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;utility&gt;</span>
<span class=c1>// walk over at most 16 nesting levels on the call stack, and over the rest with an explicit stack</span>
<span class=cp>#define JSON_RECURSION_DEPTH_LIMIT 16</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// an array nested 5,000 levels deep, built without recursion</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>1</span><span class=p>;</span>
<span class=w> </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>0</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=mi>5000</span><span class=p>;</span><span class=w> </span><span class=o>++</span><span class=n>i</span><span class=p>)</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>outer</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>array</span><span class=p>();</span>
<span class=w> </span><span class=n>outer</span><span class=p>.</span><span class=n>push_back</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>move</span><span class=p>(</span><span class=n>j</span><span class=p>));</span>
<span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>move</span><span class=p>(</span><span class=n>outer</span><span class=p>);</span>
<span class=w> </span><span class=p>}</span>
<span class=w> </span><span class=c1>// the results are those of any other limit</span>
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>copy</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>j</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>boolalpha</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"limit: "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>JSON_RECURSION_DEPTH_LIMIT</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"copy equals original: "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=p>(</span><span class=n>copy</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>j</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"length of dump(): "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>dump</span><span class=p>().</span><span class=n>size</span><span class=p>()</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"same hash: "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>hash</span><span class=o>&lt;</span><span class=n>json</span><span class=o>&gt;</span><span class=w> </span><span class=p>{}(</span><span class=n>copy</span><span class=p>)</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>hash</span><span class=o>&lt;</span><span class=n>json</span><span class=o>&gt;</span><span class=w> </span><span class=p>{}(</span><span class=n>j</span><span class=p>))</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code>limit: 16
copy equals original: true
length of dump(): 10001
same hash: true
</code></pre></div> </details> <details class=example> <summary>Example: find out how much stack an operation needs</summary> <p>The program runs <code>dump()</code> on a value nested <code>depth</code> levels deep in a thread with a stack of <code>kib</code> KiB. Compile it with the options and the limit that you use, e.g. <code>-DJSON_RECURSION_DEPTH_LIMIT=64</code>, run it with <code>depth</code> set to the limit plus 10 and decreasing values of <code>kib</code> (the stack size must be a multiple of the page size, often 4 or 16 KiB), and note the smallest stack with which it still finishes. That is how the tables above were measured.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;cstdlib&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;string&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;utility&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;pthread.h&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>static</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=w> </span><span class=n>value</span><span class=p>;</span>
<span class=k>static</span><span class=w> </span><span class=kt>void</span><span class=o>*</span><span class=w> </span><span class=nf>run</span><span class=p>(</span><span class=kt>void</span><span class=o>*</span><span class=p>)</span>
<span class=p>{</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"dump() ok, "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>value</span><span class=p>.</span><span class=n>dump</span><span class=p>().</span><span class=n>size</span><span class=p>()</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>" bytes</span><span class=se>\n</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=k>return</span><span class=w> </span><span class=nb>nullptr</span><span class=p>;</span>
<span class=p>}</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>argc</span><span class=p>,</span><span class=w> </span><span class=kt>char</span><span class=o>**</span><span class=w> </span><span class=n>argv</span><span class=p>)</span>
<span class=p>{</span>
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>depth</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>atoi</span><span class=p>(</span><span class=n>argv</span><span class=p>[</span><span class=mi>1</span><span class=p>]);</span>
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=kt>size_t</span><span class=w> </span><span class=n>kib</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>static_cast</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>size_t</span><span class=o>&gt;</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>atoi</span><span class=p>(</span><span class=n>argv</span><span class=p>[</span><span class=mi>2</span><span class=p>]));</span>
<span class=w> </span><span class=c1>// built on the main thread, without recursion</span>
<span class=w> </span><span class=n>value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>1</span><span class=p>;</span>
<span class=w> </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>0</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>depth</span><span class=p>;</span><span class=w> </span><span class=o>++</span><span class=n>i</span><span class=p>)</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=w> </span><span class=n>outer</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=o>::</span><span class=n>array</span><span class=p>();</span>
<span class=w> </span><span class=n>outer</span><span class=p>.</span><span class=n>push_back</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>move</span><span class=p>(</span><span class=n>value</span><span class=p>));</span>
<span class=w> </span><span class=n>value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>move</span><span class=p>(</span><span class=n>outer</span><span class=p>);</span>
<span class=w> </span><span class=p>}</span>
<span class=w> </span><span class=n>pthread_attr_t</span><span class=w> </span><span class=n>attr</span><span class=p>;</span>
<span class=w> </span><span class=n>pthread_attr_init</span><span class=p>(</span><span class=o>&amp;</span><span class=n>attr</span><span class=p>);</span>
<span class=w> </span><span class=n>pthread_attr_setstacksize</span><span class=p>(</span><span class=o>&amp;</span><span class=n>attr</span><span class=p>,</span><span class=w> </span><span class=n>kib</span><span class=w> </span><span class=o>*</span><span class=w> </span><span class=mi>1024</span><span class=p>);</span>
<span class=w> </span><span class=n>pthread_t</span><span class=w> </span><span class=kr>thread</span><span class=p>;</span>
<span class=w> </span><span class=n>pthread_create</span><span class=p>(</span><span class=o>&amp;</span><span class=kr>thread</span><span class=p>,</span><span class=w> </span><span class=o>&amp;</span><span class=n>attr</span><span class=p>,</span><span class=w> </span><span class=n>run</span><span class=p>,</span><span class=w> </span><span class=nb>nullptr</span><span class=p>);</span>
<span class=w> </span><span class=n>pthread_join</span><span class=p>(</span><span class=kr>thread</span><span class=p>,</span><span class=w> </span><span class=nb>nullptr</span><span class=p>);</span>
<span class=p>}</span>
</code></pre></div> </details> <h2 id=see-also>See also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../../../features/parsing/untrusted_input/#nesting-depth>Nesting depth</a> - how the library handles deeply nested values</li> <li><a href=../json_no_thread_local/ ><code>JSON_NO_THREAD_LOCAL</code></a> - switch off the use of <code>thread_local</code> storage</li> <li><a href=../../../features/macros/ >Supported Macros</a> - guide to all supported macros</li> </ul> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">&para;</a></h2> <ul> <li>Added in version 3.13.0 <span class=unreleased-version title="Not part of a release yet; the latest release is 3.12.0.">unreleased</span>.</li> </ul> <!-- https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary --> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="November 11, 2026 21:32:05 UTC">November 11, 2026</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var 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> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</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 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../json_precise_stream_position/ class="md-footer__link md-footer__link--prev" aria-label="Previous: JSON_PRECISE_STREAM_POSITION"> <div class="md-footer__button md-icon"> <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 11z"/></svg> </div> <div class=md-footer__title> <span class=md-footer__direction> Previous </span> <div class=md-ellipsis> JSON_PRECISE_STREAM_POSITION </div> </div> </a> <a href=../json_skip_library_version_check/ class="md-footer__link md-footer__link--next" aria-label="Next: JSON_SKIP_LIBRARY_VERSION_CHECK"> <div class=md-footer__title> <span class=md-footer__direction> Next </span> <div class=md-ellipsis> JSON_SKIP_LIBRARY_VERSION_CHECK </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <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-2026 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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.6m-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.3m44.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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 7.1.0 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 2025 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.3M135.4 416H69V202.2h66.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-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.9z"/></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 7.1.0 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 2025 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.3q.3 0 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.2zM382.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.1"/></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 7.1.0 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 2025 Fonticons, Inc.--><path d="M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.8c-7.6 0-13.1-6.6-12.1-13.9L59.3 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.2M357.6 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.6"/></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>{"annotate": null, "base": "../../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "navigation.top", "navigation.footer", "toc.follow", "search.suggest", "search.highlight", "content.code.copy", "content.tabs.link", "content.action.edit", "content.action.view"], "search": "../../../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "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"}, "version": null}</script> <script src=../../../assets/javascripts/bundle.c21346df.min.js></script> <script src=../../../js/mermaid-brand.js></script> <script src=../../../js/external-links.js></script> <script src=../../../js/fig-sax.js></script> <script src=../../../js/fig-jsonview.js></script> <script src=../../../js/fig-exceptions.js></script> <script src=../../../js/fig-pointer.js></script> <script src=../../../js/fig-charts.js></script> <script src=../../../js/fig-integration.js></script> <script src=../../../js/fig-macros.js></script> </body> </html>