12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //
- // Copyright (c) 2023 Dmitry Arkhipov ([email protected])
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- // Official repository: https://github.com/boostorg/json
- //
- #ifndef BOOST_JSON_SERIALIZE_OPTIONS_HPP
- #define BOOST_JSON_SERIALIZE_OPTIONS_HPP
- #include <boost/json/detail/config.hpp>
- #include <iosfwd>
- namespace boost {
- namespace json {
- /** Serialize options
- This structure is used for specifying whether to allow non-standard
- extensions. Default-constructed options specify that only standard JSON is
- produced.
- @see
- @ref serialize,
- @ref serializer.
- */
- struct serialize_options
- {
- /** Non-standard extension option
- Output `Infinity`, `-Infinity` and `NaN` for positive infinity,
- negative infinity, and "not a number" doubles.
- @see
- @ref serialize,
- @ref serializer.
- */
- bool allow_infinity_and_nan = false;
- /** Set JSON serialization options on input stream.
- The function stores serialization options in the private storage of the
- stream. If the stream fails to allocate necessary private storage,
- `badbit` will be set on it.
- @return Reference to `os`.
- @par Complexity
- Amortized constant (due to potential memory allocation by the stream).
- @par Exception Safety
- Strong guarantee.
- The stream may throw as configured by
- [`std::ios::exceptions`](https://en.cppreference.com/w/cpp/io/basic_ios/exceptions).
- @param os The output stream.
- @param opts The options to store.
- */
- BOOST_JSON_DECL
- friend
- std::ostream&
- operator<<( std::ostream& os, serialize_options const& opts );
- };
- } // namespace json
- } // namespace boost
- #endif // BOOST_JSON_SERIALIZE_OPTIONS_HPP
|