mqt-core 3.2.0__cp314-cp314t-win_arm64.whl → 3.3.0__cp314-cp314t-win_arm64.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.
Files changed (245) hide show
  1. mqt/core/__init__.py +3 -3
  2. mqt/core/_commands.py +2 -2
  3. mqt/core/_version.py +16 -3
  4. mqt/core/bin/mqt-core-algorithms.dll +0 -0
  5. mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
  6. mqt/core/bin/mqt-core-dd.dll +0 -0
  7. mqt/core/bin/mqt-core-ds.dll +0 -0
  8. mqt/core/bin/mqt-core-fomac.dll +0 -0
  9. mqt/core/bin/mqt-core-ir.dll +0 -0
  10. mqt/core/bin/mqt-core-na-fomac.dll +0 -0
  11. mqt/core/bin/mqt-core-na.dll +0 -0
  12. mqt/core/bin/mqt-core-qasm.dll +0 -0
  13. mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
  14. mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
  15. mqt/core/bin/mqt-core-zx.dll +0 -0
  16. mqt/core/dd.cp314t-win_arm64.pyd +0 -0
  17. mqt/core/dd.pyi +5 -7
  18. mqt/core/fomac.cp314t-win_arm64.pyd +0 -0
  19. mqt/core/fomac.pyi +125 -0
  20. mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +13 -0
  21. mqt/core/include/mqt-core/datastructures/DirectedGraph.hpp +1 -1
  22. mqt/core/include/mqt-core/datastructures/UndirectedGraph.hpp +1 -1
  23. mqt/core/include/mqt-core/dd/CachedEdge.hpp +7 -0
  24. mqt/core/include/mqt-core/dd/Operations.hpp +12 -14
  25. mqt/core/include/mqt-core/dd/Package.hpp +1 -1
  26. mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
  27. mqt/core/include/mqt-core/ir/QuantumComputation.hpp +29 -28
  28. mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
  29. mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
  30. mqt/core/include/mqt-core/ir/operations/OpType.hpp +3 -0
  31. mqt/core/include/mqt-core/ir/operations/OpType.inc +2 -2
  32. mqt/core/include/mqt-core/ir/operations/Operation.hpp +3 -1
  33. mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +2 -0
  34. mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
  35. mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
  36. mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
  37. mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
  38. mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
  39. mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
  40. mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
  41. mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
  42. mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
  43. mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
  44. mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
  45. mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
  46. mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
  47. mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
  48. mqt/core/include/nlohmann/detail/hash.hpp +129 -0
  49. mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
  50. mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
  51. mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
  52. mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
  53. mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
  54. mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
  55. mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
  56. mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
  57. mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
  58. mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
  59. mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
  60. mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
  61. mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
  62. mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
  63. mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
  64. mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
  65. mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
  66. mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
  67. mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
  68. mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
  69. mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
  70. mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
  71. mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
  72. mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
  73. mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
  74. mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
  75. mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
  76. mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
  77. mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
  78. mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
  79. mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
  80. mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
  81. mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
  82. mqt/core/include/nlohmann/json.hpp +5306 -0
  83. mqt/core/include/nlohmann/json_fwd.hpp +75 -0
  84. mqt/core/include/nlohmann/ordered_map.hpp +359 -0
  85. mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
  86. mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
  87. mqt/core/include/qdmi/qdmi/client.h +990 -0
  88. mqt/core/include/qdmi/qdmi/constants.h +1139 -0
  89. mqt/core/include/qdmi/qdmi/device.h +602 -0
  90. mqt/core/include/qdmi/qdmi/types.h +78 -0
  91. mqt/core/include/spdlog/async.h +99 -0
  92. mqt/core/include/spdlog/async_logger-inl.h +84 -0
  93. mqt/core/include/spdlog/async_logger.h +74 -0
  94. mqt/core/include/spdlog/cfg/argv.h +40 -0
  95. mqt/core/include/spdlog/cfg/env.h +36 -0
  96. mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
  97. mqt/core/include/spdlog/cfg/helpers.h +29 -0
  98. mqt/core/include/spdlog/common-inl.h +68 -0
  99. mqt/core/include/spdlog/common.h +406 -0
  100. mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
  101. mqt/core/include/spdlog/details/backtracer.h +45 -0
  102. mqt/core/include/spdlog/details/circular_q.h +115 -0
  103. mqt/core/include/spdlog/details/console_globals.h +28 -0
  104. mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
  105. mqt/core/include/spdlog/details/file_helper.h +61 -0
  106. mqt/core/include/spdlog/details/fmt_helper.h +141 -0
  107. mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
  108. mqt/core/include/spdlog/details/log_msg.h +40 -0
  109. mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
  110. mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
  111. mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
  112. mqt/core/include/spdlog/details/null_mutex.h +35 -0
  113. mqt/core/include/spdlog/details/os-inl.h +606 -0
  114. mqt/core/include/spdlog/details/os.h +127 -0
  115. mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
  116. mqt/core/include/spdlog/details/periodic_worker.h +58 -0
  117. mqt/core/include/spdlog/details/registry-inl.h +270 -0
  118. mqt/core/include/spdlog/details/registry.h +131 -0
  119. mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
  120. mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
  121. mqt/core/include/spdlog/details/tcp_client.h +127 -0
  122. mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
  123. mqt/core/include/spdlog/details/thread_pool.h +117 -0
  124. mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
  125. mqt/core/include/spdlog/details/udp_client.h +81 -0
  126. mqt/core/include/spdlog/details/windows_include.h +11 -0
  127. mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
  128. mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
  129. mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
  130. mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
  131. mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
  132. mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
  133. mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
  134. mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
  135. mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
  136. mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
  137. mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
  138. mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
  139. mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
  140. mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
  141. mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
  142. mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
  143. mqt/core/include/spdlog/fmt/chrono.h +23 -0
  144. mqt/core/include/spdlog/fmt/compile.h +23 -0
  145. mqt/core/include/spdlog/fmt/fmt.h +30 -0
  146. mqt/core/include/spdlog/fmt/ostr.h +23 -0
  147. mqt/core/include/spdlog/fmt/ranges.h +23 -0
  148. mqt/core/include/spdlog/fmt/std.h +24 -0
  149. mqt/core/include/spdlog/fmt/xchar.h +23 -0
  150. mqt/core/include/spdlog/formatter.h +17 -0
  151. mqt/core/include/spdlog/fwd.h +18 -0
  152. mqt/core/include/spdlog/logger-inl.h +198 -0
  153. mqt/core/include/spdlog/logger.h +379 -0
  154. mqt/core/include/spdlog/mdc.h +52 -0
  155. mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
  156. mqt/core/include/spdlog/pattern_formatter.h +118 -0
  157. mqt/core/include/spdlog/sinks/android_sink.h +137 -0
  158. mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
  159. mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
  160. mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
  161. mqt/core/include/spdlog/sinks/base_sink.h +51 -0
  162. mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
  163. mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
  164. mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
  165. mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
  166. mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
  167. mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
  168. mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
  169. mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
  170. mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
  171. mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
  172. mqt/core/include/spdlog/sinks/null_sink.h +41 -0
  173. mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
  174. mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
  175. mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
  176. mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
  177. mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
  178. mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
  179. mqt/core/include/spdlog/sinks/sink.h +34 -0
  180. mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  181. mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
  182. mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
  183. mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
  184. mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
  185. mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
  186. mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
  187. mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
  188. mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
  189. mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
  190. mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
  191. mqt/core/include/spdlog/spdlog-inl.h +96 -0
  192. mqt/core/include/spdlog/spdlog.h +357 -0
  193. mqt/core/include/spdlog/stopwatch.h +66 -0
  194. mqt/core/include/spdlog/tweakme.h +148 -0
  195. mqt/core/include/spdlog/version.h +11 -0
  196. mqt/core/ir/__init__.pyi +83 -45
  197. mqt/core/ir/operations.pyi +40 -27
  198. mqt/core/ir.cp314t-win_arm64.pyd +0 -0
  199. mqt/core/lib/cmake/spdlog/spdlogConfig.cmake +44 -0
  200. mqt/core/lib/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
  201. mqt/core/lib/cmake/spdlog/spdlogConfigTargets.cmake +119 -0
  202. mqt/core/lib/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
  203. mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
  204. mqt/core/lib/mqt-core-dd.lib +0 -0
  205. mqt/core/lib/mqt-core-fomac.lib +0 -0
  206. mqt/core/lib/mqt-core-ir.lib +0 -0
  207. mqt/core/lib/mqt-core-na-fomac.lib +0 -0
  208. mqt/core/lib/mqt-core-qasm.lib +0 -0
  209. mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
  210. mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
  211. mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
  212. mqt/core/lib/pkgconfig/spdlog.pc +13 -0
  213. mqt/core/lib/spdlog.lib +0 -0
  214. mqt/core/na/__init__.py +12 -0
  215. mqt/core/na/fomac.cp314t-win_arm64.pyd +0 -0
  216. mqt/core/na/fomac.pyi +117 -0
  217. mqt/core/nlohmann_json.natvis +278 -0
  218. mqt/core/plugins/qiskit/mqt_to_qiskit.py +75 -11
  219. mqt/core/plugins/qiskit/qiskit_to_mqt.py +108 -5
  220. mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +3 -0
  221. mqt/core/share/cmake/mqt-core/Cache.cmake +17 -16
  222. mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +6 -0
  223. mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +1 -1
  224. mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +3 -3
  225. mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +3 -0
  226. mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +51 -0
  227. mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +124 -3
  228. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
  229. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
  230. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
  231. mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
  232. mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
  233. mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
  234. mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
  235. mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
  236. mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
  237. mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
  238. mqt_core-3.3.0.dist-info/DELVEWHEEL +2 -0
  239. {mqt_core-3.2.0.dist-info → mqt_core-3.3.0.dist-info}/METADATA +74 -33
  240. {mqt_core-3.2.0.dist-info → mqt_core-3.3.0.dist-info}/RECORD +243 -49
  241. {mqt_core-3.2.0.dist-info → mqt_core-3.3.0.dist-info}/WHEEL +1 -1
  242. mqt/core/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -156
  243. mqt_core-3.2.0.dist-info/DELVEWHEEL +0 -2
  244. {mqt_core-3.2.0.dist-info → mqt_core-3.3.0.dist-info}/entry_points.txt +0 -0
  245. {mqt_core-3.2.0.dist-info → mqt_core-3.3.0.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,147 @@
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 <algorithm> // copy
12
+ #include <cstddef> // size_t
13
+ #include <iterator> // back_inserter
14
+ #include <memory> // shared_ptr, make_shared
15
+ #include <string> // basic_string
16
+ #include <vector> // vector
17
+
18
+ #ifndef JSON_NO_IO
19
+ #include <ios> // streamsize
20
+ #include <ostream> // basic_ostream
21
+ #endif // JSON_NO_IO
22
+
23
+ #include <nlohmann/detail/macro_scope.hpp>
24
+
25
+ NLOHMANN_JSON_NAMESPACE_BEGIN
26
+ namespace detail
27
+ {
28
+
29
+ /// abstract output adapter interface
30
+ template<typename CharType> struct output_adapter_protocol
31
+ {
32
+ virtual void write_character(CharType c) = 0;
33
+ virtual void write_characters(const CharType* s, std::size_t length) = 0;
34
+ virtual ~output_adapter_protocol() = default;
35
+
36
+ output_adapter_protocol() = default;
37
+ output_adapter_protocol(const output_adapter_protocol&) = default;
38
+ output_adapter_protocol(output_adapter_protocol&&) noexcept = default;
39
+ output_adapter_protocol& operator=(const output_adapter_protocol&) = default;
40
+ output_adapter_protocol& operator=(output_adapter_protocol&&) noexcept = default;
41
+ };
42
+
43
+ /// a type to simplify interfaces
44
+ template<typename CharType>
45
+ using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;
46
+
47
+ /// output adapter for byte vectors
48
+ template<typename CharType, typename AllocatorType = std::allocator<CharType>>
49
+ class output_vector_adapter : public output_adapter_protocol<CharType>
50
+ {
51
+ public:
52
+ explicit output_vector_adapter(std::vector<CharType, AllocatorType>& vec) noexcept
53
+ : v(vec)
54
+ {}
55
+
56
+ void write_character(CharType c) override
57
+ {
58
+ v.push_back(c);
59
+ }
60
+
61
+ JSON_HEDLEY_NON_NULL(2)
62
+ void write_characters(const CharType* s, std::size_t length) override
63
+ {
64
+ v.insert(v.end(), s, s + length);
65
+ }
66
+
67
+ private:
68
+ std::vector<CharType, AllocatorType>& v;
69
+ };
70
+
71
+ #ifndef JSON_NO_IO
72
+ /// output adapter for output streams
73
+ template<typename CharType>
74
+ class output_stream_adapter : public output_adapter_protocol<CharType>
75
+ {
76
+ public:
77
+ explicit output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
78
+ : stream(s)
79
+ {}
80
+
81
+ void write_character(CharType c) override
82
+ {
83
+ stream.put(c);
84
+ }
85
+
86
+ JSON_HEDLEY_NON_NULL(2)
87
+ void write_characters(const CharType* s, std::size_t length) override
88
+ {
89
+ stream.write(s, static_cast<std::streamsize>(length));
90
+ }
91
+
92
+ private:
93
+ std::basic_ostream<CharType>& stream;
94
+ };
95
+ #endif // JSON_NO_IO
96
+
97
+ /// output adapter for basic_string
98
+ template<typename CharType, typename StringType = std::basic_string<CharType>>
99
+ class output_string_adapter : public output_adapter_protocol<CharType>
100
+ {
101
+ public:
102
+ explicit output_string_adapter(StringType& s) noexcept
103
+ : str(s)
104
+ {}
105
+
106
+ void write_character(CharType c) override
107
+ {
108
+ str.push_back(c);
109
+ }
110
+
111
+ JSON_HEDLEY_NON_NULL(2)
112
+ void write_characters(const CharType* s, std::size_t length) override
113
+ {
114
+ str.append(s, length);
115
+ }
116
+
117
+ private:
118
+ StringType& str;
119
+ };
120
+
121
+ template<typename CharType, typename StringType = std::basic_string<CharType>>
122
+ class output_adapter
123
+ {
124
+ public:
125
+ template<typename AllocatorType = std::allocator<CharType>>
126
+ output_adapter(std::vector<CharType, AllocatorType>& vec)
127
+ : oa(std::make_shared<output_vector_adapter<CharType, AllocatorType>>(vec)) {}
128
+
129
+ #ifndef JSON_NO_IO
130
+ output_adapter(std::basic_ostream<CharType>& s)
131
+ : oa(std::make_shared<output_stream_adapter<CharType>>(s)) {}
132
+ #endif // JSON_NO_IO
133
+
134
+ output_adapter(StringType& s)
135
+ : oa(std::make_shared<output_string_adapter<CharType, StringType>>(s)) {}
136
+
137
+ operator output_adapter_t<CharType>()
138
+ {
139
+ return oa;
140
+ }
141
+
142
+ private:
143
+ output_adapter_t<CharType> oa = nullptr;
144
+ };
145
+
146
+ } // namespace detail
147
+ NLOHMANN_JSON_NAMESPACE_END