<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">= Allocation Control As &lt;&lt;ref_value_from&gt;&gt; creates a &lt;&lt;ref_value&gt;&gt; object, users may want to control the way memory is allocated for it. For this reason the function has an optional &lt;&lt;ref_storage_ptr&gt;&gt; parameter, that is used to set the {ref_memory_resource} for the result.</string>
    <string name="">&lt;&lt;ref_value_to&gt;&gt; does not have a similar parameter, as &lt;&lt;ref_value&gt;&gt; is not created.</string>
    <string name="">As the conversion result is set via an output parameter of type `value&amp;`, the intended &lt;&lt;ref_storage_ptr&gt;&gt; is correctly propagated. But users still should take care to not create temporaries using the default {ref_memory_resource} by accident.</string>
    <string name="">For example, consider this alternative implementation of `tag_invoke` for `ip_address` from the section &lt;&lt;custom_conversions&gt;&gt;.</string>
    <string name="">``` void tag_invoke( const value_from_tag&amp;, value&amp; jv, ip_address const&amp; addr ) { jv = array{ b[0], b[1], b[2], b[3] }; } ```</string>
    <string name="">This implementation explicitly creates an &lt;&lt;ref_array&gt;&gt; rather than relying on assignment from an initializer list. But the array uses default {ref_memory_resource}, not the one used by `jv`.</string>
    <string name="">To avoid creating such temporaries with an incorrect {ref_memory_resource}, using &lt;&lt;ref_value&gt;&gt;\'s member functions &lt;&lt;ref_value_emplace_array&gt;&gt;, &lt;&lt;ref_value_emplace_object&gt;&gt;, and &lt;&lt;ref_value_emplace_string&gt;&gt; can be helpful.</string>
</resources>
