<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">= Value Conversion While the &lt;&lt;ref_value&gt;&gt; container makes it easy to create ad-hoc structures, often it is necessary to convert between JSON and user-defined types or types from the standard library.</string>
    <string name="">The function template &lt;&lt;ref_value_from&gt;&gt; provides an interface to construct a &lt;&lt;ref_value&gt;&gt; from a type `T`. The function template &lt;&lt;ref_value_to&gt;&gt; converts in the opposite direction, from a type `T` to &lt;&lt;ref_value&gt;&gt;. Both support a wide variety of different https://en.cppreference.com/w/cpp/language/types[fundamental types], such as `int` or `double`, standard library types, such as `std::string` or `std::vector&lt;T&gt;`, and can be extended to support user-defined types.</string>
    <string name="">For the type `T`, the appropriate conversion approach is chosen from the following list of categories. The first matching category is selected.</string>
    <string name="">Category of T</string>
    <string name="">Comment</string>
    <string name="">`value_from` behavior</string>
    <string name="">`value_to` behavior</string>
    <string name="">Custom conversion.</string>
    <string name=":36">Custom behavior.</string>
    <string name="">Boost.JSON container.</string>
    <string name=":36">The result is equal to the input value.</string>
    <string name="">`bool`</string>
    <string name="">https://en.cppreference.com/w/cpp/types/is_arithmetic[Arithmetic type]</string>
    <string name="">a| The result is a number equal to input and has the type</string>
    <string name="">`std::int64_t`, if `T` is a signed integer\'; or</string>
    <string name="">`std::uint64_t`, if `T` is an unsigned integer; or</string>
    <string name="">`double` otherwise.</string>
    <string name="">The result is created via &lt;&lt;ref_value_to_number&gt;&gt;.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_null_like&gt;&gt;</string>
    <string name="">Intended for types like {std_monostate}.</string>
    <string name="">The result is a null value.</string>
    <string name="">The result is default-constructed.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_string_like&gt;&gt;.</string>
    <string name="">A sequence of `char`s, e.g. `std::string`.</string>
    <string name="">The result is a &lt;&lt;ref_string&gt;&gt;.</string>
    <string name="">The result is constructed from a &lt;&lt;ref_string_view&gt;&gt;.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_variant_like&gt;&gt;.</string>
    <string name="">`std::variant` and similar types, e.g. `boost::variant2::variant`.</string>
    <string name="">The result is equal to the result of conversion of the active variant</string>
    <string name="">alternative. |The result holds the first alternative for which a conversion succeeds.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_optional_like&gt;&gt;</string>
    <string name="">If the input value is empty, the result is a `null`. Otherwise it is</string>
    <string name="">equivalent to conversion of the object stored inside of optional. |The result is default constructed if the input value is `null`. Otherwise the result is constructed from the result of conversion of the input to the type stored in optional.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_map_like&gt;&gt;.</string>
    <string name="">A one-to-one mapping (e.g. `std::map`) with string-like keys.</string>
    <string name="">The result is an &lt;&lt;ref_object&gt;&gt;.</string>
    <string name=":87">The result is default-constructed, and elements are `insert`-ed at the end.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_sequence_like&gt;&gt;.</string>
    <string name="">A sequence of elements, e.g. `std::vector`.</string>
    <string name=":87">The result is an &lt;&lt;ref_array&gt;&gt;.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_tuple_like&gt;&gt;.</string>
    <string name="">A heterogenous sequence with fixed size, e.g. `std::tuple` and `std::pair`.</string>
    <string name="">The result is constructed with the array elements as constructor arguments.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_described_class&gt;&gt;</string>
    <string name="">The result is an &lt;&lt;ref_object&gt;&gt; with described members\' names as keys.</string>
    <string name="">The result is default-constructed and described members are assigned</string>
    <string name="">corresponding values.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_described_enum&gt;&gt;</string>
    <string name="">If the input value is equal to one of the described enumerators, the result is</string>
    <string name="">a &lt;&lt;ref_string&gt;&gt;, containing its name. Otherwise it\'s equal to the input value converted to its underlying type. |The result is the described enumerator, corresponding to the input &lt;&lt;ref_string&gt;&gt;.</string>
    <string name="">Type satisfying &lt;&lt;ref_is_path_like&gt;&gt;.</string>
    <string name="">`std::filesystem::path` and similar types, e.g. `boost::filesystem::path`.</string>
    <string name="">The result is equal to the result of `path::generic_string`.</string>
    <string name="">The result is constructed from two pointers to `const char`.</string>
    <string name="">For composite types (sequences, tuples, described classes, etc.) conversion of contained objects is applied recursively. For example:</string>
    <string name="">Here, the map is converted into an &lt;&lt;ref_object&gt;&gt;, since it matches &lt;&lt;ref_is_map_like&gt;&gt;. Each of its keys is converted into a &lt;&lt;ref_string&gt;&gt;, as `std::string` matches &lt;&lt;ref_is_string_like&gt;&gt;, and each of its values is converted into an &lt;&lt;ref_array&gt;&gt;, as `std::pair` matches &lt;&lt;ref_is_tuple_like&gt;&gt;. Finally, elements of pairs are converted into a `std::int64_t` number and a `bool`.</string>
    <string name="">:leveloffset: +1</string>
    <string name="">include::custom.adoc[] include::nothrow.adoc[] include::alloc.adoc[] include::context.adoc[] include::forward.adoc[] include::direct.adoc[] include::guidelines.adoc[]</string>
    <string name="">:leveloffset: -1</string>
</resources>
