mqt-core 3.3.2__cp312-cp312-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mqt/core/__init__.py +89 -0
- mqt/core/__main__.py +55 -0
- mqt/core/_commands.py +52 -0
- mqt/core/_compat/__init__.py +11 -0
- mqt/core/_compat/typing.py +29 -0
- mqt/core/_version.py +34 -0
- mqt/core/_version.pyi +12 -0
- mqt/core/bin/mqt-core-algorithms.dll +0 -0
- mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
- mqt/core/bin/mqt-core-dd.dll +0 -0
- mqt/core/bin/mqt-core-ds.dll +0 -0
- mqt/core/bin/mqt-core-fomac.dll +0 -0
- mqt/core/bin/mqt-core-ir.dll +0 -0
- mqt/core/bin/mqt-core-na-fomac.dll +0 -0
- mqt/core/bin/mqt-core-na.dll +0 -0
- mqt/core/bin/mqt-core-qasm.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
- mqt/core/bin/mqt-core-zx.dll +0 -0
- mqt/core/dd.cp312-win_amd64.pyd +0 -0
- mqt/core/dd.pyi +1016 -0
- mqt/core/dd_evaluation.py +368 -0
- mqt/core/fomac.cp312-win_amd64.pyd +0 -0
- mqt/core/fomac.pyi +125 -0
- mqt/core/include/mqt-core/algorithms/BernsteinVazirani.hpp +39 -0
- mqt/core/include/mqt-core/algorithms/GHZState.hpp +18 -0
- mqt/core/include/mqt-core/algorithms/Grover.hpp +33 -0
- mqt/core/include/mqt-core/algorithms/QFT.hpp +21 -0
- mqt/core/include/mqt-core/algorithms/QPE.hpp +30 -0
- mqt/core/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +22 -0
- mqt/core/include/mqt-core/algorithms/StatePreparation.hpp +43 -0
- mqt/core/include/mqt-core/algorithms/WState.hpp +18 -0
- mqt/core/include/mqt-core/algorithms/mqt_core_algorithms_export.h +43 -0
- mqt/core/include/mqt-core/boost/config/abi/borland_prefix.hpp +27 -0
- mqt/core/include/mqt-core/boost/config/abi/borland_suffix.hpp +12 -0
- mqt/core/include/mqt-core/boost/config/abi/msvc_prefix.hpp +22 -0
- mqt/core/include/mqt-core/boost/config/abi/msvc_suffix.hpp +8 -0
- mqt/core/include/mqt-core/boost/config/abi_prefix.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/abi_suffix.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx03.hpp +211 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx11.hpp +212 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx14.hpp +47 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx17.hpp +65 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx20.hpp +59 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx23.hpp +41 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx98.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/auto_link.hpp +525 -0
- mqt/core/include/mqt-core/boost/config/compiler/borland.hpp +342 -0
- mqt/core/include/mqt-core/boost/config/compiler/clang.hpp +370 -0
- mqt/core/include/mqt-core/boost/config/compiler/clang_version.hpp +89 -0
- mqt/core/include/mqt-core/boost/config/compiler/codegear.hpp +389 -0
- mqt/core/include/mqt-core/boost/config/compiler/comeau.hpp +59 -0
- mqt/core/include/mqt-core/boost/config/compiler/common_edg.hpp +185 -0
- mqt/core/include/mqt-core/boost/config/compiler/compaq_cxx.hpp +19 -0
- mqt/core/include/mqt-core/boost/config/compiler/cray.hpp +446 -0
- mqt/core/include/mqt-core/boost/config/compiler/diab.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/compiler/digitalmars.hpp +146 -0
- mqt/core/include/mqt-core/boost/config/compiler/gcc.hpp +386 -0
- mqt/core/include/mqt-core/boost/config/compiler/gcc_xml.hpp +115 -0
- mqt/core/include/mqt-core/boost/config/compiler/greenhills.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/compiler/hp_acc.hpp +153 -0
- mqt/core/include/mqt-core/boost/config/compiler/intel.hpp +577 -0
- mqt/core/include/mqt-core/boost/config/compiler/kai.hpp +33 -0
- mqt/core/include/mqt-core/boost/config/compiler/metrowerks.hpp +201 -0
- mqt/core/include/mqt-core/boost/config/compiler/mpw.hpp +143 -0
- mqt/core/include/mqt-core/boost/config/compiler/nvcc.hpp +64 -0
- mqt/core/include/mqt-core/boost/config/compiler/pathscale.hpp +141 -0
- mqt/core/include/mqt-core/boost/config/compiler/pgi.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/compiler/sgi_mipspro.hpp +29 -0
- mqt/core/include/mqt-core/boost/config/compiler/sunpro_cc.hpp +225 -0
- mqt/core/include/mqt-core/boost/config/compiler/vacpp.hpp +189 -0
- mqt/core/include/mqt-core/boost/config/compiler/visualc.hpp +398 -0
- mqt/core/include/mqt-core/boost/config/compiler/xlcpp.hpp +303 -0
- mqt/core/include/mqt-core/boost/config/compiler/xlcpp_zos.hpp +174 -0
- mqt/core/include/mqt-core/boost/config/detail/cxx_composite.hpp +218 -0
- mqt/core/include/mqt-core/boost/config/detail/posix_features.hpp +95 -0
- mqt/core/include/mqt-core/boost/config/detail/select_compiler_config.hpp +157 -0
- mqt/core/include/mqt-core/boost/config/detail/select_platform_config.hpp +147 -0
- mqt/core/include/mqt-core/boost/config/detail/select_stdlib_config.hpp +121 -0
- mqt/core/include/mqt-core/boost/config/detail/suffix.hpp +1334 -0
- mqt/core/include/mqt-core/boost/config/header_deprecated.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/helper_macros.hpp +37 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/cmath.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/complex.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/functional.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/memory.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/utility.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/platform/aix.hpp +33 -0
- mqt/core/include/mqt-core/boost/config/platform/amigaos.hpp +15 -0
- mqt/core/include/mqt-core/boost/config/platform/beos.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/platform/bsd.hpp +83 -0
- mqt/core/include/mqt-core/boost/config/platform/cloudabi.hpp +18 -0
- mqt/core/include/mqt-core/boost/config/platform/cray.hpp +18 -0
- mqt/core/include/mqt-core/boost/config/platform/cygwin.hpp +71 -0
- mqt/core/include/mqt-core/boost/config/platform/haiku.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/hpux.hpp +87 -0
- mqt/core/include/mqt-core/boost/config/platform/irix.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/linux.hpp +106 -0
- mqt/core/include/mqt-core/boost/config/platform/macos.hpp +87 -0
- mqt/core/include/mqt-core/boost/config/platform/qnxnto.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/solaris.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/symbian.hpp +97 -0
- mqt/core/include/mqt-core/boost/config/platform/vms.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/platform/vxworks.hpp +422 -0
- mqt/core/include/mqt-core/boost/config/platform/wasm.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/platform/win32.hpp +90 -0
- mqt/core/include/mqt-core/boost/config/platform/zos.hpp +32 -0
- mqt/core/include/mqt-core/boost/config/pragma_message.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/requires_threads.hpp +92 -0
- mqt/core/include/mqt-core/boost/config/stdlib/dinkumware.hpp +324 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libcomo.hpp +93 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libcpp.hpp +180 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libstdcpp3.hpp +482 -0
- mqt/core/include/mqt-core/boost/config/stdlib/modena.hpp +79 -0
- mqt/core/include/mqt-core/boost/config/stdlib/msl.hpp +98 -0
- mqt/core/include/mqt-core/boost/config/stdlib/roguewave.hpp +208 -0
- mqt/core/include/mqt-core/boost/config/stdlib/sgi.hpp +168 -0
- mqt/core/include/mqt-core/boost/config/stdlib/stlport.hpp +258 -0
- mqt/core/include/mqt-core/boost/config/stdlib/vacpp.hpp +74 -0
- mqt/core/include/mqt-core/boost/config/stdlib/xlcpp_zos.hpp +61 -0
- mqt/core/include/mqt-core/boost/config/user.hpp +133 -0
- mqt/core/include/mqt-core/boost/config/warning_disable.hpp +47 -0
- mqt/core/include/mqt-core/boost/config/workaround.hpp +305 -0
- mqt/core/include/mqt-core/boost/config.hpp +67 -0
- mqt/core/include/mqt-core/boost/cstdint.hpp +556 -0
- mqt/core/include/mqt-core/boost/cxx11_char_types.hpp +70 -0
- mqt/core/include/mqt-core/boost/detail/workaround.hpp +10 -0
- mqt/core/include/mqt-core/boost/limits.hpp +146 -0
- mqt/core/include/mqt-core/boost/multiprecision/complex128.hpp +24 -0
- mqt/core/include/mqt-core/boost/multiprecision/complex_adaptor.hpp +1046 -0
- mqt/core/include/mqt-core/boost/multiprecision/concepts/mp_number_archetypes.hpp +257 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/io.hpp +698 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/transcendental.hpp +157 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float.hpp +2297 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_complex.hpp +12 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_dec_float.hpp +3690 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add.hpp +368 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add_unsigned.hpp +387 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/bitwise.hpp +889 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/checked.hpp +178 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/comparison.hpp +374 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/cpp_int_config.hpp +161 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/divide.hpp +703 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/import_export.hpp +248 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/intel_intrinsics.hpp +138 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/limits.hpp +282 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/literals.hpp +295 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/misc.hpp +1457 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/multiply.hpp +848 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/serialize.hpp +211 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/value_pack.hpp +42 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int.hpp +2360 -0
- mqt/core/include/mqt-core/boost/multiprecision/debug_adaptor.hpp +760 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/assert.hpp +29 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/atomic.hpp +62 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/bitscan.hpp +317 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/check_cpp11_config.hpp +64 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/constexpr.hpp +88 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/default_ops.hpp +4052 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/digits.hpp +49 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/dynamic_array.hpp +44 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/empty_value.hpp +87 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/endian.hpp +35 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/et_ops.hpp +1831 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/float128_functions.hpp +95 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/float_string_cvt.hpp +333 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/fpclassify.hpp +101 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/constants.hpp +288 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/pow.hpp +905 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trig.hpp +1058 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trunc.hpp +82 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/generic_interconvert.hpp +687 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/hash.hpp +56 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/integer_ops.hpp +474 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/itos.hpp +39 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/min_max.hpp +106 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/no_et_ops.hpp +661 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/no_exceptions_support.hpp +55 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/number_base.hpp +1656 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/number_compare.hpp +848 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/precision.hpp +313 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/rebind.hpp +19 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/standalone_config.hpp +148 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/static_array.hpp +42 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/string_helpers.hpp +48 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/tables.hpp +80 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/ublas_interop.hpp +75 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/uniform_int_distribution.hpp +212 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/utype_helper.hpp +374 -0
- mqt/core/include/mqt-core/boost/multiprecision/eigen.hpp +248 -0
- mqt/core/include/mqt-core/boost/multiprecision/float128.hpp +920 -0
- mqt/core/include/mqt-core/boost/multiprecision/fwd.hpp +268 -0
- mqt/core/include/mqt-core/boost/multiprecision/gmp.hpp +4060 -0
- mqt/core/include/mqt-core/boost/multiprecision/integer.hpp +363 -0
- mqt/core/include/mqt-core/boost/multiprecision/logged_adaptor.hpp +834 -0
- mqt/core/include/mqt-core/boost/multiprecision/miller_rabin.hpp +221 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpc.hpp +1721 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpfi.hpp +2559 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpfr.hpp +3644 -0
- mqt/core/include/mqt-core/boost/multiprecision/number.hpp +2500 -0
- mqt/core/include/mqt-core/boost/multiprecision/random.hpp +23 -0
- mqt/core/include/mqt-core/boost/multiprecision/rational_adaptor.hpp +1289 -0
- mqt/core/include/mqt-core/boost/multiprecision/tommath.hpp +1034 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/explicit_conversion.hpp +67 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/extract_exponent_type.hpp +28 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_backend.hpp +91 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_byte_container.hpp +51 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_complex.hpp +22 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_convertible_arithmetic.hpp +51 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_restricted_conversion.hpp +47 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_variable_precision.hpp +25 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/max_digits10.hpp +79 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/std_integer_traits.hpp +90 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/transcendental_reduction_type.hpp +21 -0
- mqt/core/include/mqt-core/boost/version.hpp +32 -0
- mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +119 -0
- mqt/core/include/mqt-core/circuit_optimizer/mqt_core_circuit_optimizer_export.h +43 -0
- mqt/core/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +117 -0
- mqt/core/include/mqt-core/datastructures/DirectedGraph.hpp +158 -0
- mqt/core/include/mqt-core/datastructures/DisjointSet.hpp +50 -0
- mqt/core/include/mqt-core/datastructures/Layer.hpp +172 -0
- mqt/core/include/mqt-core/datastructures/SymmetricMatrix.hpp +57 -0
- mqt/core/include/mqt-core/datastructures/UndirectedGraph.hpp +227 -0
- mqt/core/include/mqt-core/datastructures/mqt_core_ds_export.h +43 -0
- mqt/core/include/mqt-core/dd/Approximation.hpp +45 -0
- mqt/core/include/mqt-core/dd/CachedEdge.hpp +174 -0
- mqt/core/include/mqt-core/dd/Complex.hpp +165 -0
- mqt/core/include/mqt-core/dd/ComplexNumbers.hpp +150 -0
- mqt/core/include/mqt-core/dd/ComplexValue.hpp +184 -0
- mqt/core/include/mqt-core/dd/ComputeTable.hpp +183 -0
- mqt/core/include/mqt-core/dd/DDDefinitions.hpp +139 -0
- mqt/core/include/mqt-core/dd/DDpackageConfig.hpp +104 -0
- mqt/core/include/mqt-core/dd/DensityNoiseTable.hpp +114 -0
- mqt/core/include/mqt-core/dd/Edge.hpp +416 -0
- mqt/core/include/mqt-core/dd/Export.hpp +438 -0
- mqt/core/include/mqt-core/dd/FunctionalityConstruction.hpp +75 -0
- mqt/core/include/mqt-core/dd/GateMatrixDefinitions.hpp +43 -0
- mqt/core/include/mqt-core/dd/LinkedListBase.hpp +45 -0
- mqt/core/include/mqt-core/dd/MemoryManager.hpp +193 -0
- mqt/core/include/mqt-core/dd/Node.hpp +223 -0
- mqt/core/include/mqt-core/dd/NoiseFunctionality.hpp +144 -0
- mqt/core/include/mqt-core/dd/Operations.hpp +306 -0
- mqt/core/include/mqt-core/dd/Package.hpp +2036 -0
- mqt/core/include/mqt-core/dd/Package_fwd.hpp +22 -0
- mqt/core/include/mqt-core/dd/RealNumber.hpp +255 -0
- mqt/core/include/mqt-core/dd/RealNumberUniqueTable.hpp +217 -0
- mqt/core/include/mqt-core/dd/Simulation.hpp +98 -0
- mqt/core/include/mqt-core/dd/StateGeneration.hpp +143 -0
- mqt/core/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +88 -0
- mqt/core/include/mqt-core/dd/UnaryComputeTable.hpp +121 -0
- mqt/core/include/mqt-core/dd/UniqueTable.hpp +243 -0
- mqt/core/include/mqt-core/dd/mqt_core_dd_export.h +43 -0
- mqt/core/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +84 -0
- mqt/core/include/mqt-core/dd/statistics/PackageStatistics.hpp +55 -0
- mqt/core/include/mqt-core/dd/statistics/Statistics.hpp +48 -0
- mqt/core/include/mqt-core/dd/statistics/TableStatistics.hpp +79 -0
- mqt/core/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +31 -0
- mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
- mqt/core/include/mqt-core/ir/Definitions.hpp +108 -0
- mqt/core/include/mqt-core/ir/Permutation.hpp +213 -0
- mqt/core/include/mqt-core/ir/QuantumComputation.hpp +596 -0
- mqt/core/include/mqt-core/ir/Register.hpp +125 -0
- mqt/core/include/mqt-core/ir/mqt_core_ir_export.h +43 -0
- mqt/core/include/mqt-core/ir/operations/AodOperation.hpp +92 -0
- mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +212 -0
- mqt/core/include/mqt-core/ir/operations/Control.hpp +142 -0
- mqt/core/include/mqt-core/ir/operations/Expression.hpp +847 -0
- mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
- mqt/core/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +118 -0
- mqt/core/include/mqt-core/ir/operations/OpType.hpp +120 -0
- mqt/core/include/mqt-core/ir/operations/OpType.inc +76 -0
- mqt/core/include/mqt-core/ir/operations/Operation.hpp +247 -0
- mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +140 -0
- mqt/core/include/mqt-core/ir/operations/SymbolicOperation.hpp +144 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
- mqt/core/include/mqt-core/na/NAComputation.hpp +185 -0
- mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
- mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
- mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
- mqt/core/include/mqt-core/na/entities/Atom.hpp +62 -0
- mqt/core/include/mqt-core/na/entities/Location.hpp +154 -0
- mqt/core/include/mqt-core/na/entities/Zone.hpp +95 -0
- mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
- mqt/core/include/mqt-core/na/mqt_core_na_export.h +43 -0
- mqt/core/include/mqt-core/na/operations/GlobalCZOp.hpp +38 -0
- mqt/core/include/mqt-core/na/operations/GlobalOp.hpp +58 -0
- mqt/core/include/mqt-core/na/operations/GlobalRYOp.hpp +42 -0
- mqt/core/include/mqt-core/na/operations/LoadOp.hpp +89 -0
- mqt/core/include/mqt-core/na/operations/LocalOp.hpp +56 -0
- mqt/core/include/mqt-core/na/operations/LocalRZOp.hpp +42 -0
- mqt/core/include/mqt-core/na/operations/LocalUOp.hpp +49 -0
- mqt/core/include/mqt-core/na/operations/MoveOp.hpp +66 -0
- mqt/core/include/mqt-core/na/operations/Op.hpp +62 -0
- mqt/core/include/mqt-core/na/operations/ShuttlingOp.hpp +51 -0
- mqt/core/include/mqt-core/na/operations/StoreOp.hpp +87 -0
- mqt/core/include/mqt-core/qasm3/Exception.hpp +85 -0
- mqt/core/include/mqt-core/qasm3/Gate.hpp +65 -0
- mqt/core/include/mqt-core/qasm3/Importer.hpp +192 -0
- mqt/core/include/mqt-core/qasm3/InstVisitor.hpp +145 -0
- mqt/core/include/mqt-core/qasm3/NestedEnvironment.hpp +41 -0
- mqt/core/include/mqt-core/qasm3/Parser.hpp +170 -0
- mqt/core/include/mqt-core/qasm3/Scanner.hpp +73 -0
- mqt/core/include/mqt-core/qasm3/Statement.hpp +486 -0
- mqt/core/include/mqt-core/qasm3/Statement_fwd.hpp +39 -0
- mqt/core/include/mqt-core/qasm3/StdGates.hpp +232 -0
- mqt/core/include/mqt-core/qasm3/Token.hpp +198 -0
- mqt/core/include/mqt-core/qasm3/Types.hpp +238 -0
- mqt/core/include/mqt-core/qasm3/Types_fwd.hpp +22 -0
- mqt/core/include/mqt-core/qasm3/mqt_core_qasm_export.h +43 -0
- mqt/core/include/mqt-core/qasm3/passes/CompilerPass.hpp +22 -0
- mqt/core/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +102 -0
- mqt/core/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +124 -0
- mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
- mqt/core/include/mqt-core/zx/FunctionalityConstruction.hpp +125 -0
- mqt/core/include/mqt-core/zx/Rational.hpp +318 -0
- mqt/core/include/mqt-core/zx/Rules.hpp +132 -0
- mqt/core/include/mqt-core/zx/Simplify.hpp +182 -0
- mqt/core/include/mqt-core/zx/Utils.hpp +212 -0
- mqt/core/include/mqt-core/zx/ZXDefinitions.hpp +93 -0
- mqt/core/include/mqt-core/zx/ZXDiagram.hpp +480 -0
- mqt/core/include/mqt-core/zx/mqt_core_zx_export.h +43 -0
- mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
- mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
- mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
- mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
- mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
- mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
- mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
- mqt/core/include/nlohmann/detail/hash.hpp +129 -0
- mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
- mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
- mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
- mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
- mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
- mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
- mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
- mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
- mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
- mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
- mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
- mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
- mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
- mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
- mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
- mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
- mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
- mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
- mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
- mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
- mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
- mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
- mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
- mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
- mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
- mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
- mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
- mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
- mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
- mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
- mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
- mqt/core/include/nlohmann/json.hpp +5306 -0
- mqt/core/include/nlohmann/json_fwd.hpp +75 -0
- mqt/core/include/nlohmann/ordered_map.hpp +359 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
- mqt/core/include/qdmi/qdmi/client.h +990 -0
- mqt/core/include/qdmi/qdmi/constants.h +1139 -0
- mqt/core/include/qdmi/qdmi/device.h +602 -0
- mqt/core/include/qdmi/qdmi/types.h +78 -0
- mqt/core/include/spdlog/async.h +99 -0
- mqt/core/include/spdlog/async_logger-inl.h +84 -0
- mqt/core/include/spdlog/async_logger.h +74 -0
- mqt/core/include/spdlog/cfg/argv.h +40 -0
- mqt/core/include/spdlog/cfg/env.h +36 -0
- mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
- mqt/core/include/spdlog/cfg/helpers.h +29 -0
- mqt/core/include/spdlog/common-inl.h +68 -0
- mqt/core/include/spdlog/common.h +406 -0
- mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
- mqt/core/include/spdlog/details/backtracer.h +45 -0
- mqt/core/include/spdlog/details/circular_q.h +115 -0
- mqt/core/include/spdlog/details/console_globals.h +28 -0
- mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
- mqt/core/include/spdlog/details/file_helper.h +61 -0
- mqt/core/include/spdlog/details/fmt_helper.h +141 -0
- mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
- mqt/core/include/spdlog/details/log_msg.h +40 -0
- mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
- mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
- mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
- mqt/core/include/spdlog/details/null_mutex.h +35 -0
- mqt/core/include/spdlog/details/os-inl.h +606 -0
- mqt/core/include/spdlog/details/os.h +127 -0
- mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
- mqt/core/include/spdlog/details/periodic_worker.h +58 -0
- mqt/core/include/spdlog/details/registry-inl.h +270 -0
- mqt/core/include/spdlog/details/registry.h +131 -0
- mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
- mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
- mqt/core/include/spdlog/details/tcp_client.h +127 -0
- mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
- mqt/core/include/spdlog/details/thread_pool.h +117 -0
- mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
- mqt/core/include/spdlog/details/udp_client.h +81 -0
- mqt/core/include/spdlog/details/windows_include.h +11 -0
- mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
- mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
- mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
- mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
- mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
- mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
- mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
- mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
- mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
- mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
- mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
- mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
- mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
- mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
- mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
- mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
- mqt/core/include/spdlog/fmt/chrono.h +23 -0
- mqt/core/include/spdlog/fmt/compile.h +23 -0
- mqt/core/include/spdlog/fmt/fmt.h +30 -0
- mqt/core/include/spdlog/fmt/ostr.h +23 -0
- mqt/core/include/spdlog/fmt/ranges.h +23 -0
- mqt/core/include/spdlog/fmt/std.h +24 -0
- mqt/core/include/spdlog/fmt/xchar.h +23 -0
- mqt/core/include/spdlog/formatter.h +17 -0
- mqt/core/include/spdlog/fwd.h +18 -0
- mqt/core/include/spdlog/logger-inl.h +198 -0
- mqt/core/include/spdlog/logger.h +379 -0
- mqt/core/include/spdlog/mdc.h +52 -0
- mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
- mqt/core/include/spdlog/pattern_formatter.h +118 -0
- mqt/core/include/spdlog/sinks/android_sink.h +137 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
- mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
- mqt/core/include/spdlog/sinks/base_sink.h +51 -0
- mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
- mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
- mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
- mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
- mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
- mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
- mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
- mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
- mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
- mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
- mqt/core/include/spdlog/sinks/null_sink.h +41 -0
- mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
- mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
- mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
- mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
- mqt/core/include/spdlog/sinks/sink.h +34 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
- mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
- mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
- mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
- mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
- mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
- mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
- mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
- mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
- mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
- mqt/core/include/spdlog/spdlog-inl.h +96 -0
- mqt/core/include/spdlog/spdlog.h +357 -0
- mqt/core/include/spdlog/stopwatch.h +66 -0
- mqt/core/include/spdlog/tweakme.h +148 -0
- mqt/core/include/spdlog/version.h +11 -0
- mqt/core/ir/__init__.pyi +2078 -0
- mqt/core/ir/operations.pyi +1011 -0
- mqt/core/ir/registers.pyi +91 -0
- mqt/core/ir/symbolic.pyi +177 -0
- mqt/core/ir.cp312-win_amd64.pyd +0 -0
- mqt/core/lib/mqt-core-algorithms.lib +0 -0
- mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
- mqt/core/lib/mqt-core-dd.lib +0 -0
- mqt/core/lib/mqt-core-ds.lib +0 -0
- mqt/core/lib/mqt-core-fomac.lib +0 -0
- mqt/core/lib/mqt-core-ir.lib +0 -0
- mqt/core/lib/mqt-core-na-fomac.lib +0 -0
- mqt/core/lib/mqt-core-na.lib +0 -0
- mqt/core/lib/mqt-core-qasm.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
- mqt/core/lib/mqt-core-zx.lib +0 -0
- mqt/core/lib/pkgconfig/spdlog.pc +13 -0
- mqt/core/lib/spdlog.lib +0 -0
- mqt/core/na/__init__.py +12 -0
- mqt/core/na/fomac.cp312-win_amd64.pyd +0 -0
- mqt/core/na/fomac.pyi +117 -0
- mqt/core/nlohmann_json.natvis +278 -0
- mqt/core/plugins/__init__.py +9 -0
- mqt/core/plugins/qiskit/__init__.py +19 -0
- mqt/core/plugins/qiskit/mqt_to_qiskit.py +420 -0
- mqt/core/plugins/qiskit/qiskit_to_mqt.py +562 -0
- mqt/core/py.typed +2 -0
- mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +55 -0
- mqt/core/share/cmake/mqt-core/Cache.cmake +33 -0
- mqt/core/share/cmake/mqt-core/FindGMP.cmake +103 -0
- mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +46 -0
- mqt/core/share/cmake/mqt-core/PreventInSourceBuilds.cmake +25 -0
- mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +87 -0
- mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +85 -0
- mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +52 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +141 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +445 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
- mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
- mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
- mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
- mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
- mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
- mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
- mqt/core/share/cmake/spdlog/spdlogConfig.cmake +44 -0
- mqt/core/share/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
- mqt/core/share/cmake/spdlog/spdlogConfigTargets.cmake +121 -0
- mqt/core/share/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
- mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
- mqt_core-3.3.2.dist-info/DELVEWHEEL +2 -0
- mqt_core-3.3.2.dist-info/METADATA +210 -0
- mqt_core-3.3.2.dist-info/RECORD +537 -0
- mqt_core-3.3.2.dist-info/WHEEL +5 -0
- mqt_core-3.3.2.dist-info/entry_points.txt +4 -0
- mqt_core-3.3.2.dist-info/licenses/LICENSE.md +22 -0
- mqt_core.libs/msvcp140.dll +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
// __ _____ _____ _____
|
|
2
|
+
// __| | __| | | | JSON for Modern C++
|
|
3
|
+
// | | |__ | | | | | | version 3.12.0
|
|
4
|
+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
5
|
+
//
|
|
6
|
+
// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <cstddef> // size_t
|
|
12
|
+
#include <iterator> // forward_iterator_tag
|
|
13
|
+
#include <tuple> // tuple_size, get, tuple_element
|
|
14
|
+
#include <utility> // move
|
|
15
|
+
|
|
16
|
+
#if JSON_HAS_RANGES
|
|
17
|
+
#include <ranges> // enable_borrowed_range
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#include <nlohmann/detail/abi_macros.hpp>
|
|
21
|
+
#include <nlohmann/detail/meta/type_traits.hpp>
|
|
22
|
+
#include <nlohmann/detail/string_utils.hpp>
|
|
23
|
+
#include <nlohmann/detail/value_t.hpp>
|
|
24
|
+
|
|
25
|
+
NLOHMANN_JSON_NAMESPACE_BEGIN
|
|
26
|
+
namespace detail
|
|
27
|
+
{
|
|
28
|
+
|
|
29
|
+
template<typename IteratorType> class iteration_proxy_value
|
|
30
|
+
{
|
|
31
|
+
public:
|
|
32
|
+
using difference_type = std::ptrdiff_t;
|
|
33
|
+
using value_type = iteration_proxy_value;
|
|
34
|
+
using pointer = value_type *;
|
|
35
|
+
using reference = value_type &;
|
|
36
|
+
using iterator_category = std::forward_iterator_tag;
|
|
37
|
+
using string_type = typename std::remove_cv< typename std::remove_reference<decltype( std::declval<IteratorType>().key() ) >::type >::type;
|
|
38
|
+
|
|
39
|
+
private:
|
|
40
|
+
/// the iterator
|
|
41
|
+
IteratorType anchor{};
|
|
42
|
+
/// an index for arrays (used to create key names)
|
|
43
|
+
std::size_t array_index = 0;
|
|
44
|
+
/// last stringified array index
|
|
45
|
+
mutable std::size_t array_index_last = 0;
|
|
46
|
+
/// a string representation of the array index
|
|
47
|
+
mutable string_type array_index_str = "0";
|
|
48
|
+
/// an empty string (to return a reference for primitive values)
|
|
49
|
+
string_type empty_str{};
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
explicit iteration_proxy_value() = default;
|
|
53
|
+
explicit iteration_proxy_value(IteratorType it, std::size_t array_index_ = 0)
|
|
54
|
+
noexcept(std::is_nothrow_move_constructible<IteratorType>::value
|
|
55
|
+
&& std::is_nothrow_default_constructible<string_type>::value)
|
|
56
|
+
: anchor(std::move(it))
|
|
57
|
+
, array_index(array_index_)
|
|
58
|
+
{}
|
|
59
|
+
|
|
60
|
+
iteration_proxy_value(iteration_proxy_value const&) = default;
|
|
61
|
+
iteration_proxy_value& operator=(iteration_proxy_value const&) = default;
|
|
62
|
+
// older GCCs are a bit fussy and require explicit noexcept specifiers on defaulted functions
|
|
63
|
+
iteration_proxy_value(iteration_proxy_value&&)
|
|
64
|
+
noexcept(std::is_nothrow_move_constructible<IteratorType>::value
|
|
65
|
+
&& std::is_nothrow_move_constructible<string_type>::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor,cppcoreguidelines-noexcept-move-operations)
|
|
66
|
+
iteration_proxy_value& operator=(iteration_proxy_value&&)
|
|
67
|
+
noexcept(std::is_nothrow_move_assignable<IteratorType>::value
|
|
68
|
+
&& std::is_nothrow_move_assignable<string_type>::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor,cppcoreguidelines-noexcept-move-operations)
|
|
69
|
+
~iteration_proxy_value() = default;
|
|
70
|
+
|
|
71
|
+
/// dereference operator (needed for range-based for)
|
|
72
|
+
const iteration_proxy_value& operator*() const
|
|
73
|
+
{
|
|
74
|
+
return *this;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/// increment operator (needed for range-based for)
|
|
78
|
+
iteration_proxy_value& operator++()
|
|
79
|
+
{
|
|
80
|
+
++anchor;
|
|
81
|
+
++array_index;
|
|
82
|
+
|
|
83
|
+
return *this;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
iteration_proxy_value operator++(int)& // NOLINT(cert-dcl21-cpp)
|
|
87
|
+
{
|
|
88
|
+
auto tmp = iteration_proxy_value(anchor, array_index);
|
|
89
|
+
++anchor;
|
|
90
|
+
++array_index;
|
|
91
|
+
return tmp;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/// equality operator (needed for InputIterator)
|
|
95
|
+
bool operator==(const iteration_proxy_value& o) const
|
|
96
|
+
{
|
|
97
|
+
return anchor == o.anchor;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/// inequality operator (needed for range-based for)
|
|
101
|
+
bool operator!=(const iteration_proxy_value& o) const
|
|
102
|
+
{
|
|
103
|
+
return anchor != o.anchor;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/// return key of the iterator
|
|
107
|
+
const string_type& key() const
|
|
108
|
+
{
|
|
109
|
+
JSON_ASSERT(anchor.m_object != nullptr);
|
|
110
|
+
|
|
111
|
+
switch (anchor.m_object->type())
|
|
112
|
+
{
|
|
113
|
+
// use integer array index as key
|
|
114
|
+
case value_t::array:
|
|
115
|
+
{
|
|
116
|
+
if (array_index != array_index_last)
|
|
117
|
+
{
|
|
118
|
+
int_to_string( array_index_str, array_index );
|
|
119
|
+
array_index_last = array_index;
|
|
120
|
+
}
|
|
121
|
+
return array_index_str;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// use key from the object
|
|
125
|
+
case value_t::object:
|
|
126
|
+
return anchor.key();
|
|
127
|
+
|
|
128
|
+
// use an empty key for all primitive types
|
|
129
|
+
case value_t::null:
|
|
130
|
+
case value_t::string:
|
|
131
|
+
case value_t::boolean:
|
|
132
|
+
case value_t::number_integer:
|
|
133
|
+
case value_t::number_unsigned:
|
|
134
|
+
case value_t::number_float:
|
|
135
|
+
case value_t::binary:
|
|
136
|
+
case value_t::discarded:
|
|
137
|
+
default:
|
|
138
|
+
return empty_str;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/// return value of the iterator
|
|
143
|
+
typename IteratorType::reference value() const
|
|
144
|
+
{
|
|
145
|
+
return anchor.value();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/// proxy class for the items() function
|
|
150
|
+
template<typename IteratorType> class iteration_proxy
|
|
151
|
+
{
|
|
152
|
+
private:
|
|
153
|
+
/// the container to iterate
|
|
154
|
+
typename IteratorType::pointer container = nullptr;
|
|
155
|
+
|
|
156
|
+
public:
|
|
157
|
+
explicit iteration_proxy() = default;
|
|
158
|
+
|
|
159
|
+
/// construct iteration proxy from a container
|
|
160
|
+
explicit iteration_proxy(typename IteratorType::reference cont) noexcept
|
|
161
|
+
: container(&cont) {}
|
|
162
|
+
|
|
163
|
+
iteration_proxy(iteration_proxy const&) = default;
|
|
164
|
+
iteration_proxy& operator=(iteration_proxy const&) = default;
|
|
165
|
+
iteration_proxy(iteration_proxy&&) noexcept = default;
|
|
166
|
+
iteration_proxy& operator=(iteration_proxy&&) noexcept = default;
|
|
167
|
+
~iteration_proxy() = default;
|
|
168
|
+
|
|
169
|
+
/// return iterator begin (needed for range-based for)
|
|
170
|
+
iteration_proxy_value<IteratorType> begin() const noexcept
|
|
171
|
+
{
|
|
172
|
+
return iteration_proxy_value<IteratorType>(container->begin());
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/// return iterator end (needed for range-based for)
|
|
176
|
+
iteration_proxy_value<IteratorType> end() const noexcept
|
|
177
|
+
{
|
|
178
|
+
return iteration_proxy_value<IteratorType>(container->end());
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
// Structured Bindings Support
|
|
183
|
+
// For further reference see https://blog.tartanllama.xyz/structured-bindings/
|
|
184
|
+
// And see https://github.com/nlohmann/json/pull/1391
|
|
185
|
+
template<std::size_t N, typename IteratorType, enable_if_t<N == 0, int> = 0>
|
|
186
|
+
auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.key())
|
|
187
|
+
{
|
|
188
|
+
return i.key();
|
|
189
|
+
}
|
|
190
|
+
// Structured Bindings Support
|
|
191
|
+
// For further reference see https://blog.tartanllama.xyz/structured-bindings/
|
|
192
|
+
// And see https://github.com/nlohmann/json/pull/1391
|
|
193
|
+
template<std::size_t N, typename IteratorType, enable_if_t<N == 1, int> = 0>
|
|
194
|
+
auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.value())
|
|
195
|
+
{
|
|
196
|
+
return i.value();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
} // namespace detail
|
|
200
|
+
NLOHMANN_JSON_NAMESPACE_END
|
|
201
|
+
|
|
202
|
+
// The Addition to the STD Namespace is required to add
|
|
203
|
+
// Structured Bindings Support to the iteration_proxy_value class
|
|
204
|
+
// For further reference see https://blog.tartanllama.xyz/structured-bindings/
|
|
205
|
+
// And see https://github.com/nlohmann/json/pull/1391
|
|
206
|
+
namespace std
|
|
207
|
+
{
|
|
208
|
+
|
|
209
|
+
#if defined(__clang__)
|
|
210
|
+
// Fix: https://github.com/nlohmann/json/issues/1401
|
|
211
|
+
#pragma clang diagnostic push
|
|
212
|
+
#pragma clang diagnostic ignored "-Wmismatched-tags"
|
|
213
|
+
#endif
|
|
214
|
+
template<typename IteratorType>
|
|
215
|
+
class tuple_size<::nlohmann::detail::iteration_proxy_value<IteratorType>> // NOLINT(cert-dcl58-cpp)
|
|
216
|
+
: public std::integral_constant<std::size_t, 2> {};
|
|
217
|
+
|
|
218
|
+
template<std::size_t N, typename IteratorType>
|
|
219
|
+
class tuple_element<N, ::nlohmann::detail::iteration_proxy_value<IteratorType >> // NOLINT(cert-dcl58-cpp)
|
|
220
|
+
{
|
|
221
|
+
public:
|
|
222
|
+
using type = decltype(
|
|
223
|
+
get<N>(std::declval <
|
|
224
|
+
::nlohmann::detail::iteration_proxy_value<IteratorType >> ()));
|
|
225
|
+
};
|
|
226
|
+
#if defined(__clang__)
|
|
227
|
+
#pragma clang diagnostic pop
|
|
228
|
+
#endif
|
|
229
|
+
|
|
230
|
+
} // namespace std
|
|
231
|
+
|
|
232
|
+
#if JSON_HAS_RANGES
|
|
233
|
+
template <typename IteratorType>
|
|
234
|
+
inline constexpr bool ::std::ranges::enable_borrowed_range<::nlohmann::detail::iteration_proxy<IteratorType>> = true;
|
|
235
|
+
#endif
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// __ _____ _____ _____
|
|
2
|
+
// __| | __| | | | JSON for Modern C++
|
|
3
|
+
// | | |__ | | | | | | version 3.12.0
|
|
4
|
+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
5
|
+
//
|
|
6
|
+
// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <iterator> // random_access_iterator_tag
|
|
12
|
+
|
|
13
|
+
#include <nlohmann/detail/abi_macros.hpp>
|
|
14
|
+
#include <nlohmann/detail/meta/void_t.hpp>
|
|
15
|
+
#include <nlohmann/detail/meta/cpp_future.hpp>
|
|
16
|
+
|
|
17
|
+
NLOHMANN_JSON_NAMESPACE_BEGIN
|
|
18
|
+
namespace detail
|
|
19
|
+
{
|
|
20
|
+
|
|
21
|
+
template<typename It, typename = void>
|
|
22
|
+
struct iterator_types {};
|
|
23
|
+
|
|
24
|
+
template<typename It>
|
|
25
|
+
struct iterator_types <
|
|
26
|
+
It,
|
|
27
|
+
void_t<typename It::difference_type, typename It::value_type, typename It::pointer,
|
|
28
|
+
typename It::reference, typename It::iterator_category >>
|
|
29
|
+
{
|
|
30
|
+
using difference_type = typename It::difference_type;
|
|
31
|
+
using value_type = typename It::value_type;
|
|
32
|
+
using pointer = typename It::pointer;
|
|
33
|
+
using reference = typename It::reference;
|
|
34
|
+
using iterator_category = typename It::iterator_category;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// This is required as some compilers implement std::iterator_traits in a way that
|
|
38
|
+
// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341.
|
|
39
|
+
template<typename T, typename = void>
|
|
40
|
+
struct iterator_traits
|
|
41
|
+
{
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
template<typename T>
|
|
45
|
+
struct iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
|
|
46
|
+
: iterator_types<T>
|
|
47
|
+
{
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
template<typename T>
|
|
51
|
+
struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
|
|
52
|
+
{
|
|
53
|
+
using iterator_category = std::random_access_iterator_tag;
|
|
54
|
+
using value_type = T;
|
|
55
|
+
using difference_type = ptrdiff_t;
|
|
56
|
+
using pointer = T*;
|
|
57
|
+
using reference = T&;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
} // namespace detail
|
|
61
|
+
NLOHMANN_JSON_NAMESPACE_END
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// __ _____ _____ _____
|
|
2
|
+
// __| | __| | | | JSON for Modern C++
|
|
3
|
+
// | | |__ | | | | | | version 3.12.0
|
|
4
|
+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
5
|
+
//
|
|
6
|
+
// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <cstddef> // ptrdiff_t
|
|
12
|
+
#include <iterator> // reverse_iterator
|
|
13
|
+
#include <utility> // declval
|
|
14
|
+
|
|
15
|
+
#include <nlohmann/detail/abi_macros.hpp>
|
|
16
|
+
|
|
17
|
+
NLOHMANN_JSON_NAMESPACE_BEGIN
|
|
18
|
+
namespace detail
|
|
19
|
+
{
|
|
20
|
+
|
|
21
|
+
//////////////////////
|
|
22
|
+
// reverse_iterator //
|
|
23
|
+
//////////////////////
|
|
24
|
+
|
|
25
|
+
/*!
|
|
26
|
+
@brief a template for a reverse iterator class
|
|
27
|
+
|
|
28
|
+
@tparam Base the base iterator type to reverse. Valid types are @ref
|
|
29
|
+
iterator (to create @ref reverse_iterator) and @ref const_iterator (to
|
|
30
|
+
create @ref const_reverse_iterator).
|
|
31
|
+
|
|
32
|
+
@requirement The class satisfies the following concept requirements:
|
|
33
|
+
-
|
|
34
|
+
[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):
|
|
35
|
+
The iterator that can be moved can be moved in both directions (i.e.
|
|
36
|
+
incremented and decremented).
|
|
37
|
+
- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator):
|
|
38
|
+
It is possible to write to the pointed-to element (only if @a Base is
|
|
39
|
+
@ref iterator).
|
|
40
|
+
|
|
41
|
+
@since version 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
template<typename Base>
|
|
44
|
+
class json_reverse_iterator : public std::reverse_iterator<Base>
|
|
45
|
+
{
|
|
46
|
+
public:
|
|
47
|
+
using difference_type = std::ptrdiff_t;
|
|
48
|
+
/// shortcut to the reverse iterator adapter
|
|
49
|
+
using base_iterator = std::reverse_iterator<Base>;
|
|
50
|
+
/// the reference type for the pointed-to element
|
|
51
|
+
using reference = typename Base::reference;
|
|
52
|
+
|
|
53
|
+
/// create reverse iterator from iterator
|
|
54
|
+
explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
|
|
55
|
+
: base_iterator(it) {}
|
|
56
|
+
|
|
57
|
+
/// create reverse iterator from base class
|
|
58
|
+
explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {}
|
|
59
|
+
|
|
60
|
+
/// post-increment (it++)
|
|
61
|
+
json_reverse_iterator operator++(int)& // NOLINT(cert-dcl21-cpp)
|
|
62
|
+
{
|
|
63
|
+
return static_cast<json_reverse_iterator>(base_iterator::operator++(1));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/// pre-increment (++it)
|
|
67
|
+
json_reverse_iterator& operator++()
|
|
68
|
+
{
|
|
69
|
+
return static_cast<json_reverse_iterator&>(base_iterator::operator++());
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/// post-decrement (it--)
|
|
73
|
+
json_reverse_iterator operator--(int)& // NOLINT(cert-dcl21-cpp)
|
|
74
|
+
{
|
|
75
|
+
return static_cast<json_reverse_iterator>(base_iterator::operator--(1));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/// pre-decrement (--it)
|
|
79
|
+
json_reverse_iterator& operator--()
|
|
80
|
+
{
|
|
81
|
+
return static_cast<json_reverse_iterator&>(base_iterator::operator--());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/// add to iterator
|
|
85
|
+
json_reverse_iterator& operator+=(difference_type i)
|
|
86
|
+
{
|
|
87
|
+
return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/// add to iterator
|
|
91
|
+
json_reverse_iterator operator+(difference_type i) const
|
|
92
|
+
{
|
|
93
|
+
return static_cast<json_reverse_iterator>(base_iterator::operator+(i));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/// subtract from iterator
|
|
97
|
+
json_reverse_iterator operator-(difference_type i) const
|
|
98
|
+
{
|
|
99
|
+
return static_cast<json_reverse_iterator>(base_iterator::operator-(i));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/// return difference
|
|
103
|
+
difference_type operator-(const json_reverse_iterator& other) const
|
|
104
|
+
{
|
|
105
|
+
return base_iterator(*this) - base_iterator(other);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/// access to successor
|
|
109
|
+
reference operator[](difference_type n) const
|
|
110
|
+
{
|
|
111
|
+
return *(this->operator+(n));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/// return the key of an object iterator
|
|
115
|
+
auto key() const -> decltype(std::declval<Base>().key())
|
|
116
|
+
{
|
|
117
|
+
auto it = --this->base();
|
|
118
|
+
return it.key();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/// return the value of an iterator
|
|
122
|
+
reference value() const
|
|
123
|
+
{
|
|
124
|
+
auto it = --this->base();
|
|
125
|
+
return it.operator * ();
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
} // namespace detail
|
|
130
|
+
NLOHMANN_JSON_NAMESPACE_END
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// __ _____ _____ _____
|
|
2
|
+
// __| | __| | | | JSON for Modern C++
|
|
3
|
+
// | | |__ | | | | | | version 3.12.0
|
|
4
|
+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
5
|
+
//
|
|
6
|
+
// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <cstddef> // ptrdiff_t
|
|
12
|
+
#include <limits> // numeric_limits
|
|
13
|
+
|
|
14
|
+
#include <nlohmann/detail/macro_scope.hpp>
|
|
15
|
+
|
|
16
|
+
NLOHMANN_JSON_NAMESPACE_BEGIN
|
|
17
|
+
namespace detail
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
@brief an iterator for primitive JSON types
|
|
22
|
+
|
|
23
|
+
This class models an iterator for primitive JSON types (boolean, number,
|
|
24
|
+
string). It's only purpose is to allow the iterator/const_iterator classes
|
|
25
|
+
to "iterate" over primitive values. Internally, the iterator is modeled by
|
|
26
|
+
a `difference_type` variable. Value begin_value (`0`) models the begin,
|
|
27
|
+
end_value (`1`) models past the end.
|
|
28
|
+
*/
|
|
29
|
+
class primitive_iterator_t
|
|
30
|
+
{
|
|
31
|
+
private:
|
|
32
|
+
using difference_type = std::ptrdiff_t;
|
|
33
|
+
static constexpr difference_type begin_value = 0;
|
|
34
|
+
static constexpr difference_type end_value = begin_value + 1;
|
|
35
|
+
|
|
36
|
+
JSON_PRIVATE_UNLESS_TESTED:
|
|
37
|
+
/// iterator as signed integer type
|
|
38
|
+
difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)();
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
constexpr difference_type get_value() const noexcept
|
|
42
|
+
{
|
|
43
|
+
return m_it;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/// set iterator to a defined beginning
|
|
47
|
+
void set_begin() noexcept
|
|
48
|
+
{
|
|
49
|
+
m_it = begin_value;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// set iterator to a defined past the end
|
|
53
|
+
void set_end() noexcept
|
|
54
|
+
{
|
|
55
|
+
m_it = end_value;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/// return whether the iterator can be dereferenced
|
|
59
|
+
constexpr bool is_begin() const noexcept
|
|
60
|
+
{
|
|
61
|
+
return m_it == begin_value;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// return whether the iterator is at end
|
|
65
|
+
constexpr bool is_end() const noexcept
|
|
66
|
+
{
|
|
67
|
+
return m_it == end_value;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
71
|
+
{
|
|
72
|
+
return lhs.m_it == rhs.m_it;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
76
|
+
{
|
|
77
|
+
return lhs.m_it < rhs.m_it;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
primitive_iterator_t operator+(difference_type n) noexcept
|
|
81
|
+
{
|
|
82
|
+
auto result = *this;
|
|
83
|
+
result += n;
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
88
|
+
{
|
|
89
|
+
return lhs.m_it - rhs.m_it;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
primitive_iterator_t& operator++() noexcept
|
|
93
|
+
{
|
|
94
|
+
++m_it;
|
|
95
|
+
return *this;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
primitive_iterator_t operator++(int)& noexcept // NOLINT(cert-dcl21-cpp)
|
|
99
|
+
{
|
|
100
|
+
auto result = *this;
|
|
101
|
+
++m_it;
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
primitive_iterator_t& operator--() noexcept
|
|
106
|
+
{
|
|
107
|
+
--m_it;
|
|
108
|
+
return *this;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
primitive_iterator_t operator--(int)& noexcept // NOLINT(cert-dcl21-cpp)
|
|
112
|
+
{
|
|
113
|
+
auto result = *this;
|
|
114
|
+
--m_it;
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
primitive_iterator_t& operator+=(difference_type n) noexcept
|
|
119
|
+
{
|
|
120
|
+
m_it += n;
|
|
121
|
+
return *this;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
primitive_iterator_t& operator-=(difference_type n) noexcept
|
|
125
|
+
{
|
|
126
|
+
m_it -= n;
|
|
127
|
+
return *this;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
} // namespace detail
|
|
132
|
+
NLOHMANN_JSON_NAMESPACE_END
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// __ _____ _____ _____
|
|
2
|
+
// __| | __| | | | JSON for Modern C++
|
|
3
|
+
// | | |__ | | | | | | version 3.12.0
|
|
4
|
+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
5
|
+
//
|
|
6
|
+
// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <type_traits> // conditional, is_same
|
|
12
|
+
|
|
13
|
+
#include <nlohmann/detail/abi_macros.hpp>
|
|
14
|
+
|
|
15
|
+
NLOHMANN_JSON_NAMESPACE_BEGIN
|
|
16
|
+
namespace detail
|
|
17
|
+
{
|
|
18
|
+
|
|
19
|
+
/*!
|
|
20
|
+
@brief Default base class of the @ref basic_json class.
|
|
21
|
+
|
|
22
|
+
So that the correct implementations of the copy / move ctors / assign operators
|
|
23
|
+
of @ref basic_json do not require complex case distinctions
|
|
24
|
+
(no base class / custom base class used as customization point),
|
|
25
|
+
@ref basic_json always has a base class.
|
|
26
|
+
By default, this class is used because it is empty and thus has no effect
|
|
27
|
+
on the behavior of @ref basic_json.
|
|
28
|
+
*/
|
|
29
|
+
struct json_default_base {};
|
|
30
|
+
|
|
31
|
+
template<class T>
|
|
32
|
+
using json_base_class = typename std::conditional <
|
|
33
|
+
std::is_same<T, void>::value,
|
|
34
|
+
json_default_base,
|
|
35
|
+
T
|
|
36
|
+
>::type;
|
|
37
|
+
|
|
38
|
+
} // namespace detail
|
|
39
|
+
NLOHMANN_JSON_NAMESPACE_END
|