<?xml version="1.0" encoding="UTF-8"?>
<mrdocs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc">
<namespace id="//////////////////////////8=">
  <namespace name="boost" id="+jO0pmMB/RXahxtatVUYoEwUKWs=">
    <namespace name="urls" id="dnk5XPfR2OaMpCYaH3cWSxcTdyc=">
      <using-directive id="dFhpRnVrPPpdq5ewgStCIemieCE="/>
      <namespace name="detail" id="N0a0PcWBzeWPZcu7RT7dbUuOvwU=">
        <struct name="any_params_iter" id="N907Zq1jcNQM3QvuYRWfKy3naJo=">
          <file short-path="boost/url/detail/any_params_iter.hpp" source-path="include/boost/url/detail/any_params_iter.hpp" line="34" class="def"/>
        </struct>
        <struct name="any_segments_iter" id="yN69vxXJAP6E65u8Qke0AHCTZns=">
          <file short-path="boost/url/detail/any_segments_iter.hpp" source-path="include/boost/url/detail/any_segments_iter.hpp" line="23" class="def"/>
        </struct>
        <class name="format_arg" id="/zMrc2EfowBhSEHWufUSB6T3OeI=">
          <file short-path="boost/url/detail/format_args.hpp" source-path="include/boost/url/detail/format_args.hpp" line="101" class="def"/>
        </class>
        <template>
          <tparam name="T" class="type"/>
          <struct name="named_arg" id="81sFU1ap8/xDfdip9jIZTHzrnZc=">
            <file short-path="boost/url/detail/format_args.hpp" source-path="include/boost/url/detail/format_args.hpp" line="88" class="def"/>
          </struct>
        </template>
        <struct name="optional_string" id="eyrJc7lS2X0ncdAwqP02OzkVx6g=">
          <file short-path="boost/url/detail/optional_string.hpp" source-path="include/boost/url/detail/optional_string.hpp" line="24" class="def"/>
        </struct>
        <struct name="params_iter_impl" id="Kjj4FMkjLyAYk5A+0siPoF+6BxE=">
          <file short-path="boost/url/detail/params_iter_impl.hpp" source-path="include/boost/url/detail/params_iter_impl.hpp" line="22" class="def"/>
          <base>
            <type id="c2oHkdZKXA2sws1urqbpOsR9Kx8=" name="parts_base"/>
          </base>
        </struct>
        <struct name="parts_base" id="c2oHkdZKXA2sws1urqbpOsR9Kx8=">
          <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="21" class="def"/>
          <enum name="" id="1JOsZvgqqrPd7AKwjtAHDfQ2icA=">
            <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="23" class="def"/>
            <enum-constant name="id_scheme" initializer="4294967295" id="aDRmuukPUIFkZQLbFOWYlK2bgy8=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="25"/>
            </enum-constant>
            <enum-constant name="id_user" initializer="0" id="S9v7VhfAboWJfu4WIJ9nOZw4SeE=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="26"/>
            </enum-constant>
            <enum-constant name="id_pass" initializer="1" id="1j3nr2ruLm4K69Nh/QTuJI762qM=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="27"/>
            </enum-constant>
            <enum-constant name="id_host" initializer="2" id="VpINKQ141yD1/02sgBPryhDQAB4=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="28"/>
            </enum-constant>
            <enum-constant name="id_port" initializer="3" id="s5NwdxwYSg5/VhC56cr6w0OspaY=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="29"/>
            </enum-constant>
            <enum-constant name="id_path" initializer="4" id="1XXJbkDIhTELSbS226G62YkL6m4=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="30"/>
            </enum-constant>
            <enum-constant name="id_query" initializer="5" id="sshcQdVWwkO9XCJlIScbpgnAtGw=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="31"/>
            </enum-constant>
            <enum-constant name="id_frag" initializer="6" id="I8MPlOaNY67hQgssw5TWhU6Sf1c=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="32"/>
            </enum-constant>
            <enum-constant name="id_end" initializer="7" id="e/5/mys/Nvj/omyvu7SnJtddic0=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="33"/>
            </enum-constant>
          </enum>
          <enum name="from" class="scoped" id="XBsOBACbev7ebnNe3ePPa6j4G58=">
            <base>
              <type name="char"/>
            </base>
            <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="36" class="def"/>
            <enum-constant name="string" initializer="0" id="vpVwmAcC6OXdrsZhVf1BmnWZnmI=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="38"/>
            </enum-constant>
            <enum-constant name="url" initializer="1" id="8ldFenKrZsAFoCNV3yIDGFEYfIo=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="42"/>
            </enum-constant>
            <enum-constant name="authority" initializer="2" id="56D5ifG890qyCbZKFxTTtprHKlM=">
              <file short-path="boost/url/detail/parts_base.hpp" source-path="include/boost/url/detail/parts_base.hpp" line="45"/>
            </enum-constant>
          </enum>
        </struct>
        <class name="path_ref" id="8i/2kU0xJOUDBwaU8J+g4bAFCYo=">
          <file short-path="boost/url/detail/url_impl.hpp" source-path="include/boost/url/detail/url_impl.hpp" line="102" class="def"/>
        </class>
        <struct name="pattern" id="7JLc2rJyxvIcYx4cE8r71g0pp0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="40"/>
        </struct>
        <class name="query_ref" id="2lCBK8wOkLy56QnHftTAflfUb+E=">
          <file short-path="boost/url/detail/url_impl.hpp" source-path="include/boost/url/detail/url_impl.hpp" line="148" class="def"/>
        </class>
        <struct name="segments_iter_impl" id="w9A8Yp2yPRq3OCYinKx8LDDbDwY=">
          <file short-path="boost/url/detail/segments_iter_impl.hpp" source-path="include/boost/url/detail/segments_iter_impl.hpp" line="23" class="def"/>
        </struct>
        <struct name="url_impl" id="4SJMftn6IPr1dGqX5JdpCnmJy/o=">
          <file short-path="boost/url/detail/url_impl.hpp" source-path="include/boost/url/detail/url_impl.hpp" line="37" class="def"/>
          <base>
            <type id="c2oHkdZKXA2sws1urqbpOsR9Kx8=" name="parts_base"/>
          </base>
        </struct>
        <template>
          <tparam name="Args" class="type"/>
          <function name="make_decode_view" exception-spec="noexcept" id="dwj6lWET5mCtZKi/XhKQ5u+ixOQ=">
            <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="77"/>
            <return>
              <type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view"/>
            </return>
            <param name="args">
              <type class="rvalue-reference" is-pack="1">
                <pointee-type is-pack="1" name="Args"/>
              </type>
            </param>
          </function>
        </template>
        <function name="ref" exception-spec="noexcept" id="LxnyO1oMtIpumA27UM8WIh7lozo=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="71"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </type>
          </return>
          <param>
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </type>
          </param>
        </function>
      </namespace>
      <namespace name="error_types" id="dFhpRnVrPPpdq5ewgStCIemieCE=">
        <namespace-alias name="errc" id="uT4AHZWwz1y2PxO9wFdu8NHmv9U=">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="171"/>
          <doc>
            <brief>
              <text>The set of constants used for cross-platform error codes</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>core::string_view</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
          <aliased name="boost::system::errc"/>
        </namespace-alias>
        <namespace-alias name="error_category" id="RuTgDILNiOM1qWodZIqh3i+ojjs=">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="43"/>
          <type id="nO3jcHtBw/fBE2CuJphjVyhkdcs=" name="boost::system::error_category"/>
          <doc>
            <brief>
              <text>The type of error category used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>system::error_category</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="error_code" id="yqrUKgPOvS84EWFL529N0kb/HDU=">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="65"/>
          <type id="6rIGjIhXzK1yZlcD+UBEOkwfUGc=" name="boost::system::error_code"/>
          <doc>
            <brief>
              <text>The type of error code used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>system::error_code</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="error_condition" id="qI57jEGO0MVlJexMJPKj6/Bs5FM=">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="87"/>
          <type id="k1130brDADLgbCjQCdBnAjXEIoI=" name="boost::system::error_condition"/>
          <doc>
            <brief>
              <text>The type of error condition used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>system::error_condition</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
        <template>
          <tparam name="T" class="type"/>
          <namespace-alias name="result" id="bjSUKhX+n1GPEPg5Jloenh4Xi9A=">
            <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="264"/>
            <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="boost::system::result&lt;T, system::error_code&gt;"/>
            <doc>
              <brief>
                <text>The type of result returned by library functions</text>
              </brief>
              <para class="warning">
                <text>This alias is no longer supported and should not be used in new code. Please use </text>
                <mono>system::result</mono>
                <text> instead.</text>
              </para>
              <para>
                <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
              </para>
              <para>
                <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
              </para>
              <para>
                <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
              </para>
              <para>
                <text>This is an alias template used as the return type for functions that can either return a container, or fail with an error code. This is a brief synopsis of the type:</text>
              </para>
              <head>Declaration</head>
              <code>
                <text>template&lt; class T &gt;
class result
{
public:
    //
    // Return true if the result contains an error
    //
    constexpr bool has_error() const noexcept;

    //
    // Return the error
    //
    constexpr system::error_code error() const noexcept;

    //
    // Return true if the result contains a value
    //
    constexpr bool has_value() const noexcept;
    constexpr explicit operator bool() const noexcept;

    //
    // Return the value, or throw an exception
    //
    constexpr T&amp; value();
    constexpr T const&amp; value() const;

    // Return the value.
    // Precondition: has_value()==true
    //
    constexpr T&amp; operator*() noexcept;
    constexpr T* operator-&gt;() noexcept;
    constexpr T const&amp; operator*() const noexcept;
    constexpr T const* operator-&gt;() const noexcept;

    ...more</text>
              </code>
              <head>Usage</head>
              <para>
                <text>Given the function </text>
                <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
                <text> with this signature:</text>
              </para>
              <code>
                <text>system::result&lt; url_view &gt; parse_uri( core::string_view s ) noexcept;</text>
              </code>
              <para>
                <text>The following statement captures the value in a variable upon success, otherwise throws:</text>
              </para>
              <code>
                <text>url_view u = parse_uri( &quot;http://example.com/path/to/file.txt&quot; ).value();</text>
              </code>
              <para>
                <text>This statement captures the result in a local variable and inspects the error condition:</text>
              </para>
              <code>
                <text>system::result&lt; url_view &gt; rv = parse_uri( &quot;http://example.com/path/to/file.txt&quot; );

if(! rv )
    std::cout &lt;&lt; rv.error();
else
    std::cout &lt;&lt; *rv;</text>
              </code>
              <unorderedlist>
                <listitem>
                  <link href="https://boost.org/libs/system/doc/html/system.html#ref_resultt_e">`boost::system::result`</link>
                </listitem>
              </unorderedlist>
              <tparam name="T">
                <text>The type of value held by the result.</text>
              </tparam>
            </doc>
          </namespace-alias>
        </template>
        <namespace-alias name="system_error" id="THGORlBSfx7zCN79rsiin41X6hE=">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="109"/>
          <type id="WWHylWATMliP7X8mi649Z47r1rY=" name="boost::system::system_error"/>
          <doc>
            <brief>
              <text>The type of system error thrown by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>system::system_error</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
        <using id="1VpRAua/ImyxIw/Sv4H7RHpffcQ=" class="using" qualifier="boost::system::generic_category">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="131"/>
          <doc>
            <brief>
              <text>A function to return the generic error category used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>core::string_view</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </using>
        <using id="fu9ui8aa6jfmb5DOCLF4dVB+LCg=" class="using" qualifier="boost::system::system_category">
          <file short-path="boost/url/error_types.hpp" source-path="include/boost/url/error_types.hpp" line="151"/>
          <doc>
            <brief>
              <text>A function to return the system error category used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>core::string_view</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </using>
      </namespace>
      <namespace name="grammar" id="1HiiaUSr2qeoadbVYr8/BZxU47k=">
        <namespace name="implementation_defined" id="kjqcso5U9E4PFvl5kQX9ptGH8vA=">
          <template>
            <tparam name="Size" class="constant" type="std::size_t"/>
            <tparam name="Align" class="constant" type="std::size_t"/>
            <struct name="aligned_storage_impl" id="LRfE6XJSvL3V5ROAZvkYO4H/JAU=">
              <file short-path="boost/url/grammar/detail/recycled.hpp" source-path="include/boost/url/grammar/detail/recycled.hpp" line="20" class="def"/>
            </struct>
          </template>
          <struct name="all_chars_t" id="nRXavJqZzPf3zVFXWgsPc/IdjN8=">
            <file short-path="boost/url/grammar/all_chars.hpp" source-path="include/boost/url/grammar/all_chars.hpp" line="21" class="def"/>
          </struct>
          <struct name="alnum_chars_t" id="PecAmXu5iFbTP95XO6HABBapM0M=">
            <file short-path="boost/url/grammar/alnum_chars.hpp" source-path="include/boost/url/grammar/alnum_chars.hpp" line="20" class="def"/>
          </struct>
          <struct name="alpha_chars_t" id="aZ8NmGk2LhJ7q/tOUwi0dMSLAPY=">
            <file short-path="boost/url/grammar/alpha_chars.hpp" source-path="include/boost/url/grammar/alpha_chars.hpp" line="20" class="def"/>
          </struct>
          <struct name="ch_delim_rule" id="3CTA0y/pdHpybn8r5XIQDF7OBlE=">
            <file short-path="boost/url/grammar/delim_rule.hpp" source-path="include/boost/url/grammar/delim_rule.hpp" line="25" class="def"/>
          </struct>
          <template>
            <tparam name="CharSet" class="type"/>
            <struct name="charset_ref" id="221l+sWJpD23An4Nsc351qg0OBk=">
              <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="204" class="def"/>
            </struct>
          </template>
          <struct name="ci_equal" id="d4OeqgdLPPZtBxcOd4SVe7om3SY=">
            <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="290" class="def"/>
          </struct>
          <struct name="ci_hash" id="rozFn9EUSvD+OQ01EGPOx42b3T4=">
            <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="253" class="def"/>
          </struct>
          <struct name="ci_less" id="OnCcxBqYA2CnO6oQF7zOSRE6mo8=">
            <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="329" class="def"/>
          </struct>
          <template>
            <tparam name="CharSet" class="type"/>
            <struct name="cs_delim_rule" id="Mn+TpHAfUsKvpUzJ4XXH4KRW+Hw=">
              <file short-path="boost/url/grammar/delim_rule.hpp" source-path="include/boost/url/grammar/delim_rule.hpp" line="89" class="def"/>
            </struct>
          </template>
          <struct name="dec_octet_rule_t" id="HxXn4S3XY1ehyjJnmQaLixjJWW4=">
            <file short-path="boost/url/grammar/dec_octet_rule.hpp" source-path="include/boost/url/grammar/dec_octet_rule.hpp" line="20" class="def"/>
          </struct>
          <struct name="digit_chars_t" id="RzrXifCkxfQaJRtdGmnkdmkNNCk=">
            <file short-path="boost/url/grammar/digit_chars.hpp" source-path="include/boost/url/grammar/digit_chars.hpp" line="20" class="def"/>
          </struct>
          <struct name="hexdig_chars_t" id="thD44DGIe9GW1wf4LsqenuROJj0=">
            <file short-path="boost/url/grammar/hexdig_chars.hpp" source-path="include/boost/url/grammar/hexdig_chars.hpp" line="20" class="def"/>
          </struct>
          <template>
            <tparam name="T" class="type"/>
            <tparam class="type" default="void"/>
            <struct name="is_charset" id="0Ut3sHh6/eonI4BcjmvoRJSvnu0=">
              <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="30" class="def"/>
              <base>
                <type id="z3uoRT/4JBF1PRGgtCqSzue/zqY=" name="std::false_type"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="T" class="type"/>
            <tparam class="type" default="void"/>
            <struct name="is_rule" id="F4PN1oLk/eYanladpXAuMnkZIuw=">
              <file short-path="boost/url/grammar/type_traits.hpp" source-path="include/boost/url/grammar/type_traits.hpp" line="23" class="def"/>
              <base>
                <type id="z3uoRT/4JBF1PRGgtCqSzue/zqY=" name="std::false_type"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="R" class="type"/>
            <struct name="not_empty_rule_t" id="7Q7zhRx23P+FJ7L7QnHWo4R/dFY=">
              <file short-path="boost/url/grammar/not_empty_rule.hpp" source-path="include/boost/url/grammar/not_empty_rule.hpp" line="22" class="def"/>
            </struct>
          </template>
          <template>
            <tparam name="Rule" class="type"/>
            <struct name="optional_rule_t" id="T56AU5rfLjzDT59R+kMpH1selCY=">
              <file short-path="boost/url/grammar/optional_rule.hpp" source-path="include/boost/url/grammar/optional_rule.hpp" line="26" class="def"/>
            </struct>
          </template>
          <template>
            <tparam name="R0" class="type"/>
            <tparam name="R1" class="type"/>
            <struct name="range_rule_t" id="J8dRb4F9BB1DL+D9Zt9RR+ub9l0=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="100"/>
            </struct>
          </template>
          <template>
            <tparam name="Rule" class="type"/>
            <struct name="rule_ref" id="J5kxsYNgICiyE+NSIa2FMMmE+PI=">
              <file short-path="boost/url/grammar/parse.hpp" source-path="include/boost/url/grammar/parse.hpp" line="67" class="def"/>
            </struct>
          </template>
          <template>
            <tparam name="Rule" class="type"/>
            <struct name="squelch_rule_t" id="DhWhEpk9CuLc798VTS0BKCR2OWc=">
              <file short-path="boost/url/grammar/tuple_rule.hpp" source-path="include/boost/url/grammar/tuple_rule.hpp" line="144" class="def"/>
              <base>
                <type id="6O5aQPXSgAP2cvCyb006gjh9Zpk=" name="empty_value&lt;Rule&gt;"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="CharSet" class="type"/>
            <struct name="token_rule_t" id="m+FYUn7TLf2kNtSNExDzwqrsSB4=">
              <file short-path="boost/url/grammar/token_rule.hpp" source-path="include/boost/url/grammar/token_rule.hpp" line="23" class="def"/>
            </struct>
          </template>
          <template>
            <tparam name="R0" class="type"/>
            <tparam name="Rn" class="type"/>
            <class name="tuple_rule_t" id="nWoWNVw77zLQ6OOna6+pGGaTIdo=">
              <file short-path="boost/url/grammar/tuple_rule.hpp" source-path="include/boost/url/grammar/tuple_rule.hpp" line="28" class="def"/>
            </class>
          </template>
          <template>
            <tparam name="R0" class="type"/>
            <tparam name="Rn" class="type"/>
            <class name="variant_rule_t" id="h8EW/tdUnEu5iJrF1YVO3fGWKNg=">
              <file short-path="boost/url/grammar/variant_rule.hpp" source-path="include/boost/url/grammar/variant_rule.hpp" line="24" class="def"/>
            </class>
          </template>
          <struct name="vchars_t" id="3dzyJ9uJweYXT1VXLoYXSVyuPqg=">
            <file short-path="boost/url/grammar/vchars.hpp" source-path="include/boost/url/grammar/vchars.hpp" line="20" class="def"/>
          </struct>
        </namespace>
        <namespace-alias name="string_token" id="9V9OWFKGAdzyoTAl2TNIxHn9M/Y=">
          <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="479"/>
          <aliased name="boost::urls::string_token" id="MOmWJXtSzgLTSr4XFeqs4WKGaYg="/>
        </namespace-alias>
        <template>
          <tparam name="T" class="type"/>
          <namespace-alias name="aligned_storage" id="k2EX7IarFscJBSv6Hora+WRxv58=">
            <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="43"/>
            <type id="LRfE6XJSvL3V5ROAZvkYO4H/JAU=" name="implementation_defined::aligned_storage_impl&lt;implementation_defined::nearest_pow2(sizeof(T), 64), (alignof(::max_align_t) &gt; alignof(T)) ? alignof(::max_align_t) : alignof(T)&gt;"/>
            <doc>
              <brief>
                <text>Provides an aligned storage buffer aligned for T</text>
              </brief>
              <code>
                <text>template&lt;class T&gt;
struct aligned_storage
{
    /// Return a pointer to the aligned storage area
    void* addr() noexcept;

    /// Return a pointer to the aligned storage area
    void const* addr() const noexcept;
};</text>
              </code>
            </doc>
          </namespace-alias>
        </template>
        <namespace-alias name="ci_equal" id="CjuyvGEHcSn7860a6yvIb6sLSEE=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="326"/>
          <type id="d4OeqgdLPPZtBxcOd4SVe7om3SY=" name="implementation_defined::ci_equal"/>
          <doc>
            <brief>
              <text>A case-insensitive equals predicate for strings</text>
            </brief>
            <para>
              <text>The function object returns </text>
              <mono>true</mono>
              <text> when two strings are equal, ignoring case. This is a suitable equality predicate for unordered containers. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>boost::unordered_map&lt; std::string, std::string, ci_hash, ci_equal &gt; m1;

std::unordered_map  &lt; std::string, std::string, ci_hash, ci_equal &gt; m2; // (since C++20)</text>
            </code>
            <see>
              <reference id="Q973ONH3kBp0tyBEy2h5J78Mrjg=">ci_hash</reference>
              <text>, </text>
              <reference id="G4q1ugzl5mM1xE9Wxyzevu6JB+M=">ci_less</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="ci_hash" id="Q973ONH3kBp0tyBEy2h5J78Mrjg=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="287"/>
          <type id="rozFn9EUSvD+OQ01EGPOx42b3T4=" name="implementation_defined::ci_hash"/>
          <doc>
            <brief>
              <text>A case-insensitive hash function object for strings</text>
            </brief>
            <para>
              <text>The hash function is non-cryptographic and not hardened against algorithmic complexity attacks. This is a suitable hash function for unordered containers. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>boost::unordered_map&lt; std::string, std::string, ci_hash, ci_equal &gt; m1;

std::unordered_map  &lt; std::string, std::string, ci_hash, ci_equal &gt; m2; // (since C++20)</text>
            </code>
            <see>
              <reference id="CjuyvGEHcSn7860a6yvIb6sLSEE=">ci_equal</reference>
              <text>, </text>
              <reference id="G4q1ugzl5mM1xE9Wxyzevu6JB+M=">ci_less</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="ci_less" id="G4q1ugzl5mM1xE9Wxyzevu6JB+M=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="365"/>
          <type id="OnCcxBqYA2CnO6oQF7zOSRE6mo8=" name="implementation_defined::ci_less"/>
          <doc>
            <brief>
              <text>A case-insensitive less predicate for strings</text>
            </brief>
            <para>
              <text>The comparison algorithm implements a case-insensitive total order on the set of all ASCII strings; however, it is not a lexicographical comparison. This is a suitable predicate for ordered containers. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>boost::container::map&lt; std::string, std::string, ci_less &gt; m1;

std::map&lt; std::string, std::string, ci_less &gt; m2; // (since C++14)</text>
            </code>
            <see>
              <reference id="CjuyvGEHcSn7860a6yvIb6sLSEE=">ci_equal</reference>
              <text>, </text>
              <reference id="Q973ONH3kBp0tyBEy2h5J78Mrjg=">ci_hash</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <template>
          <tparam name="T" class="type"/>
          <namespace-alias name="is_charset" id="0GCmQo0daSi2/pqQuIRhYWbW6lk=">
            <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="66"/>
            <type id="0Ut3sHh6/eonI4BcjmvoRJSvnu0=" name="implementation_defined::is_charset&lt;T&gt;"/>
            <doc>
              <brief>
                <text>Alias for </text>
                <mono>std::true_type</mono>
                <text> if T satisfies </text>
                <reference id="FxMSGnhcpF1/OxJmfRXaS2a37Bo=">CharSet</reference>
                <text>.</text>
              </brief>
              <para>
                <text>This metafunction determines if the type </text>
                <mono>T</mono>
                <text> meets these requirements of </text>
                <italic>CharSet</italic>
                <text>:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>An instance of `T` is invocable</text>
                  <text>    with this equivalent function signature:</text>
                </listitem>
              </unorderedlist>
              <code>
                <text>bool T::operator()( char ) const noexcept;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Use with </text>
                <mono>enable_if</mono>
                <text> on the return value:</text>
              </para>
              <code>
                <text>template&lt; class CharSet &gt;
typename std::enable_if&lt; is_charset&lt;T&gt;::value &gt;::type
func( CharSet const&amp; cs );</text>
              </code>
              <tparam name="T">
                <text>the type to check.</text>
              </tparam>
            </doc>
          </namespace-alias>
        </template>
        <template>
          <tparam name="T" class="type"/>
          <namespace-alias name="is_rule" id="Lqb+A8s0WInDfI5fYlmrSx9QEaU=">
            <file short-path="boost/url/grammar/type_traits.hpp" source-path="include/boost/url/grammar/type_traits.hpp" line="62"/>
            <type id="F4PN1oLk/eYanladpXAuMnkZIuw=" name="implementation_defined::is_rule&lt;T&gt;"/>
            <doc>
              <brief>
                <text>Determine if T meets the requirements of </text>
                <reference id="cRU3xcDmjFTdAqKX4QDnvPvWuIU=">Rule</reference>
              </brief>
              <para>
                <text>This is an alias for </text>
                <mono>std::true_type</mono>
                <text> if </text>
                <mono>T</mono>
                <text> meets the requirements, otherwise it is an alias for </text>
                <mono>std::false_type</mono>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>struct U
{
    struct value_type;

    auto
    parse(
        char const*&amp; it,
        char const* end) const -&gt;
            system::result&lt;value_type&gt;
};

static_assert( is_rule&lt;U&gt;::value, &quot;Requirements not met&quot; );</text>
              </code>
              <see>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </see>
            </doc>
          </namespace-alias>
        </template>
        <class name="literal_rule" id="XMite/FuGUZ+4DHIikZwrlGV6fA=">
          <file short-path="boost/url/grammar/literal_rule.hpp" source-path="include/boost/url/grammar/literal_rule.hpp" line="44" class="def"/>
          <doc>
            <brief>
              <text>Match a string literal exactly</text>
            </brief>
            <para>
              <text>If there is no more input, or if the end of the input is reached, and a prefix of the literal matches exactly, the error returned is </text>
              <reference id="a/THTSv6k7njvbh+81BNyu1ppl8=">error::need_more</reference>
              <text>.</text>
            </para>
            <head>Value Type</head>
            <code>
              <text>using value_type = core::string_view;</text>
            </code>
            <head>Example</head>
            <para>
              <text>Rules are used with the function </text>
              <reference id="qlxK9wNfX5MDpvVkZgw2FDLygsg=">parse</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;HTTP&quot;, literal_rule( &quot;HTTP&quot; ) );</text>
            </code>
            <see>
              <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
              <text>, </text>
              <reference id="qlxK9wNfX5MDpvVkZgw2FDLygsg=">parse</reference>
              <text>.</text>
            </see>
          </doc>
          <namespace-alias name="value_type" id="UahLEcXGmRVOh/eXbc0zmLPXzvY=">
            <file short-path="boost/url/grammar/literal_rule.hpp" source-path="include/boost/url/grammar/literal_rule.hpp" line="60"/>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </namespace-alias>
          <function class="constructor" name="literal_rule" exception-spec="noexcept" explicit-spec="explicit" id="wqG7oeAarOkPxdQp282siLuYsgM=">
            <file short-path="boost/url/grammar/literal_rule.hpp" source-path="include/boost/url/grammar/literal_rule.hpp" line="62" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>char</mono>
              </brief>
              <param name="s">
                <text>The value to construct from</text>
              </param>
            </doc>
          </function>
          <function name="parse" exception-spec="noexcept" id="qlxK9wNfX5MDpvVkZgw2FDLygsg=">
            <file short-path="boost/url/grammar/literal_rule.hpp" source-path="include/boost/url/grammar/literal_rule.hpp" line="72"/>
            <attr id="is-const"/>
            <return>
              <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;value_type&gt;"/>
            </return>
            <param name="it">
              <type class="lvalue-reference">
                <pointee-type class="pointer">
                  <pointee-type name="char" cv-qualifiers="const"/>
                </pointee-type>
              </type>
            </param>
            <param name="end">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
          </function>
        </class>
        <class name="lut_chars" id="79IFwv0C40oPrhucou1uA6DC1RI=">
          <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="64" class="def"/>
          <friend id="7CUoh11FVhxOsS+h3YMv9zT8QAI=">
            <befriended id="7CUoh11FVhxOsS+h3YMv9zT8QAI="/>
          </friend>
          <friend id="RPE7nl0nzHl50NxeKWVlHlj0EEc=">
            <befriended id="RPE7nl0nzHl50NxeKWVlHlj0EEc="/>
          </friend>
          <doc>
            <brief>
              <text>A set of characters</text>
            </brief>
            <para>
              <text>The characters defined by instances of this set are provided upon construction. The </text>
              <mono>constexpr</mono>
              <text> implementation allows these to become compile-time constants.</text>
            </para>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>constexpr lut_chars vowel_chars = &quot;AEIOU&quot; &quot;aeiou&quot;;

system::result&lt; core::string_view &gt; rv = parse( &quot;Aiea&quot;, token_rule( vowel_chars ) );</text>
            </code>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
          <function class="constructor" name="lut_chars" exception-spec="noexcept" id="eegCO1z+S7KSG1awJXK1jo+q44o=">
            <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="157" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="ch">
              <type name="char"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This function constructs a character set which has as a single member, the character </text>
                <mono>ch</mono>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>constexpr lut_chars asterisk( &apos;*&apos; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <param name="ch">
                <text>A character.</text>
              </param>
            </doc>
          </function>
          <function class="constructor" name="lut_chars" exception-spec="noexcept" id="dIJTwI3DskrTCuyIE1Tn2JQ8OaQ=">
            <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="188" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This function constructs a character set which has as members, all of the characters present in the null-terminated string </text>
                <mono>s</mono>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>constexpr lut_chars digits = &quot;0123456789&quot;;</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>::strlen(s)</mono>
                <text>, or constant if </text>
                <mono>s</mono>
                <text> is a constant expression.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <param name="s">
                <text>A null-terminated string.</text>
              </param>
            </doc>
          </function>
          <template requires="detail::is_pred&lt;Pred&gt;::value &amp;&amp;
        ! std::is_base_of&lt;
            lut_chars, Pred&gt;::value">
            <tparam name="Pred" class="type"/>
            <function class="constructor" name="lut_chars" exception-spec="noexcept" id="LY5h54qZwduQj4g6AIkddcwQAQ0=">
              <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="227" class="def"/>
              <attr id="constexpr-kind" name="constexpr" value="1"/>
              <param name="pred">
                <type class="lvalue-reference">
                  <pointee-type name="Pred" cv-qualifiers="const"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor.</text>
                </brief>
                <para>
                  <text>This function constructs a character set which has as members, every value of </text>
                  <mono>char ch</mono>
                  <text> for which the expression </text>
                  <mono>pred(ch)</mono>
                  <text> returns </text>
                  <mono>true</mono>
                  <text>.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>struct is_digit
{
    constexpr bool
    operator()(char c ) const noexcept
    {
        return c &gt;= &apos;0&apos; &amp;&amp; c &lt;= &apos;9&apos;;
    }
};

constexpr lut_chars digits( is_digit{} );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>pred</mono>
                  <text>, or constant if </text>
                  <mono>pred(ch)</mono>
                  <text> is a constant expression.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="pred">
                  <text>The function object to use for determining membership in the character set.</text>
                </param>
              </doc>
            </function>
          </template>
          <function name="operator()" exception-spec="noexcept" id="9hXLW55aN05cJRJ5T8t2c7RX714=">
            <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="266" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="ch">
              <type name="char"/>
            </param>
            <doc>
              <brief>
                <text>Return true if ch is in the character set.</text>
              </brief>
              <para>
                <text>This function returns true if the character </text>
                <mono>ch</mono>
                <text> is in the set, otherwise it returns false.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if </text>
                <mono>ch</mono>
                <text> is in the set.</text>
              </returns>
              <param name="ch">
                <text>The character to test.</text>
              </param>
            </doc>
          </function>
          <function name="operator()" exception-spec="noexcept" id="/uucGiIb78jYPcEaG/dn0be1qIM=">
            <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="257" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="ch">
              <type name="unsigned char"/>
            </param>
            <doc>
              <brief>
                <text>Return true if ch is in the character set.</text>
              </brief>
              <para>
                <text>This function returns true if the character </text>
                <mono>ch</mono>
                <text> is in the set, otherwise it returns false.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if </text>
                <mono>ch</mono>
                <text> is in the set.</text>
              </returns>
              <param name="ch">
                <text>The character to test.</text>
              </param>
            </doc>
          </function>
          <function name="operator~" exception-spec="noexcept" id="zdfpEKtj3/TfXjBPPFuC5J+8N+I=">
            <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="372" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="bitnot" value="13"/>
            <attr id="is-const"/>
            <return>
              <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars"/>
            </return>
            <doc>
              <brief>
                <text>Return a new character set which is the complement of another character set.</text>
              </brief>
              <para>
                <text>This function returns a new character set which contains all of the characters that are not in </text>
                <mono>*this</mono>
                <text>.</text>
              </para>
              <head>Example</head>
              <para>
                <text>This statement declares a character set containing everything but vowels:</text>
              </para>
              <code>
                <text>constexpr lut_chars not_vowels = ~lut_chars( &quot;AEIOU&quot; &quot;aeiou&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>The new character set.</text>
              </returns>
            </doc>
          </function>
        </class>
        <template>
          <tparam name="T" class="type"/>
          <class name="range" id="+9pPsGvBtUttdLyyLFPI7ibWjaE=">
            <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="62" class="def"/>
            <doc>
              <brief>
                <text>A forward range of parsed elements</text>
              </brief>
              <para>
                <text>Objects of this type are forward ranges returned when parsing using the </text>
                <reference id="KRm16yawSU2JFWabmZP+Z4VVllM=">range_rule</reference>
                <text>. Iteration is performed by re-parsing the underlying character buffer. Ownership of the buffer is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by the range.</text>
              </para>
              <para>
                <text>The implementation may use temporary, recycled storage for type-erasure. Objects of type </text>
                <mono>range</mono>
                <text> are intended to be used ephemerally. That is, for short durations such as within a function scope. If it is necessary to store the range for a long period of time or with static storage duration, it is necessary to copy the contents to an object of a different type.</text>
              </para>
              <tparam name="T">
                <text>The value type of the range</text>
              </tparam>
              <see>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="KRm16yawSU2JFWabmZP+Z4VVllM=">range_rule</reference>
                <text>.</text>
              </see>
            </doc>
            <namespace-alias name="const_iterator" id="BZ+vqmcVnYSa7VVMFUa96mvKO80=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="164"/>
              <type id="lCoNiFc2o6M/LXfMlqq25nSREQY=" name="iterator"/>
              <doc>
                <brief>
                  <text>A constant, forward iterator to elements of the range</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="const_reference" id="wkdwKJM5NmnhF7WfdujglpiWDew=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="144"/>
              <type class="lvalue-reference">
                <pointee-type name="T" cv-qualifiers="const"/>
              </type>
              <doc>
                <brief>
                  <text>The type of each element of the range</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="difference_type" id="w1dLgakGdhUDnN7itrQsN6mkwq0=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="156"/>
              <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
              <doc>
                <brief>
                  <text>The type used to represent signed integers</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="pointer" id="+NP1c0BpT1KsTjg0wPkQ1z8LCAU=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="148"/>
              <type class="pointer">
                <pointee-type name="void" cv-qualifiers="const"/>
              </type>
              <doc>
                <brief>
                  <text>Provided for compatibility, unused</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="reference" id="kTT07Kp33FaBpTm75LCThM8XdwQ=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="140"/>
              <type class="lvalue-reference">
                <pointee-type name="T" cv-qualifiers="const"/>
              </type>
              <doc>
                <brief>
                  <text>The type of each element of the range</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="size_type" id="pqn72zxXL7gHL0OqdX218Ao905A=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="152"/>
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
              <doc>
                <brief>
                  <text>The type used to represent unsigned integers</text>
                </brief>
              </doc>
            </namespace-alias>
            <namespace-alias name="value_type" id="YSboS+l7DpZemDVHbhFsG0x0YFI=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="136"/>
              <type name="T"/>
              <doc>
                <brief>
                  <text>The type of each element of the range</text>
                </brief>
              </doc>
            </namespace-alias>
            <class name="iterator" id="lCoNiFc2o6M/LXfMlqq25nSREQY=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="160"/>
              <friend id="+9pPsGvBtUttdLyyLFPI7ibWjaE=">
                <befriended id="+9pPsGvBtUttdLyyLFPI7ibWjaE="/>
              </friend>
              <doc>
                <brief>
                  <text>A constant, forward iterator to elements of the range</text>
                </brief>
              </doc>
            </class>
            <function class="constructor" name="range" exception-spec="noexcept" id="HgUKSC6CtXDP9RCk539xs8hFJrY=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="178"/>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>Default-constructed ranges have zero elements.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
              </doc>
            </function>
            <function class="constructor" name="range" exception-spec="noexcept" id="G2CHob6s+wEtcpTLGHJLn647Z6E=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="209"/>
              <param name="other">
                <type class="lvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range" cv-qualifiers="const"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>The copy references the same underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="other">
                  <text>The object to copy construct from</text>
                </param>
              </doc>
            </function>
            <function class="constructor" name="range" exception-spec="noexcept" id="gp9xN+r2+B2adJk2lRuc2cpW+PE=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="194"/>
              <param name="other">
                <type class="rvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>The new range references the same underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced. The moved-from object becomes as if default-constructed.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="other">
                  <text>The object to move construct from</text>
                </param>
              </doc>
            </function>
            <function class="destructor" name="~range" id="GwzUCUTroOFdFLx+NfGe6GjihNA=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="168"/>
              <doc>
                <brief>
                  <text>Destructor</text>
                </brief>
              </doc>
            </function>
            <function name="operator=" exception-spec="noexcept" id="5OVop2D52L650bT4NiIBKQBCmGk=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="244"/>
              <attr id="operator" name="assign" value="14"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range"/>
                </type>
              </return>
              <param name="other">
                <type class="lvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range" cv-qualifiers="const"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Assignment</text>
                </brief>
                <para>
                  <text>The copy references the same underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>*this</mono>
                </returns>
                <param name="other">
                  <text>The object to copy assign from</text>
                </param>
              </doc>
            </function>
            <function name="operator=" exception-spec="noexcept" id="j6ZLmLFnx4uiYhFJs3RXBmLcmMA=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="226"/>
              <attr id="operator" name="assign" value="14"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range"/>
                </type>
              </return>
              <param name="other">
                <type class="rvalue-reference">
                  <pointee-type id="+9pPsGvBtUttdLyyLFPI7ibWjaE=" name="range"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Assignment</text>
                </brief>
                <para>
                  <text>After the move, this references the same underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced. The moved-from object becomes as if default-constructed.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>*this</mono>
                </returns>
                <param name="other">
                  <text>The object to move assign from</text>
                </param>
              </doc>
            </function>
            <function name="begin" exception-spec="noexcept" id="ameCLTdn5LMZsc2bukZfOjgpgf8=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="251"/>
              <attr id="is-const"/>
              <return>
                <type id="lCoNiFc2o6M/LXfMlqq25nSREQY=" name="iterator"/>
              </return>
              <doc>
                <brief>
                  <text>Return an iterator to the beginning</text>
                </brief>
                <returns>
                  <text>An iterator to the first element</text>
                </returns>
              </doc>
            </function>
            <function name="empty" exception-spec="noexcept" id="mXJmABjAy98srkCxJJi3FGCjnDY=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="263" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="bool"/>
              </return>
              <doc>
                <brief>
                  <text>Return true if the range is empty</text>
                </brief>
                <returns>
                  <mono>true</mono>
                  <text> if the range is empty</text>
                </returns>
              </doc>
            </function>
            <function name="end" exception-spec="noexcept" id="lgwMVUFk8W44LRPAk5tB+spvC98=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="257"/>
              <attr id="is-const"/>
              <return>
                <type id="lCoNiFc2o6M/LXfMlqq25nSREQY=" name="iterator"/>
              </return>
              <doc>
                <brief>
                  <text>Return an iterator to the end</text>
                </brief>
                <returns>
                  <text>An iterator to one past the last element</text>
                </returns>
              </doc>
            </function>
            <function name="size" exception-spec="noexcept" id="J9qbmCElq+dKa/sjy+nZENM1fj0=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="273" class="def"/>
              <attr id="is-const"/>
              <return>
                <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
              </return>
              <doc>
                <brief>
                  <text>Return the number of elements in the range</text>
                </brief>
                <returns>
                  <text>The number of elements</text>
                </returns>
              </doc>
            </function>
            <function name="string" exception-spec="noexcept" id="jA5bXUS1lPmqOsCGRYzzGIVUvcA=">
              <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="283" class="def"/>
              <attr id="is-const"/>
              <return>
                <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
              </return>
              <doc>
                <brief>
                  <text>Return the matching part of the string</text>
                </brief>
                <returns>
                  <text>A string view representing the range</text>
                </returns>
              </doc>
            </function>
          </class>
        </template>
        <template>
          <tparam name="T" class="type"/>
          <class name="recycled" id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">
            <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="71" class="def"/>
            <friend id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=">
              <befriended id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ="/>
            </friend>
            <doc>
              <brief>
                <text>A thread-safe collection of instances of T</text>
              </brief>
              <para>
                <text>Instances of this type may be used to control where recycled instances of T come from when used with </text>
                <reference id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=">recycled_ptr</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>static recycled&lt; std::string &gt; bin;

recycled_ptr&lt; std::string &gt; ps( bin );

// Put the string into a known state
ps-&gt;clear();</text>
              </code>
              <see>
                <reference id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=">recycled_ptr</reference>
                <text>.</text>
              </see>
            </doc>
            <function class="constructor" name="recycled" id="eMQLSBBNJl/2Q4eW9/OxJcYh6nQ=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="86" class="def"/>
              <attr id="is-defaulted"/>
              <attr id="is-explicitly-defaulted"/>
              <attr id="constexpr-kind" name="constexpr" value="1"/>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
              </doc>
            </function>
            <function class="destructor" name="~recycled" id="lJDeADUMZlCfHAArDAEIoiZHv6w=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="82"/>
              <doc>
                <brief>
                  <text>Destructor</text>
                </brief>
                <para>
                  <text>All recycled instances of T are destroyed. Undefined behavior results if there are any </text>
                  <reference id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=">recycled_ptr</reference>
                  <text> which reference this recycle bin.</text>
                </para>
              </doc>
            </function>
          </class>
        </template>
        <template>
          <tparam name="T" class="type"/>
          <class name="recycled_ptr" id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=">
            <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="148" class="def"/>
            <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="89"/>
            <friend id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">
              <befriended id="x2v5wd8/Skv+UtDnwS5/F27XMxc="/>
            </friend>
            <doc>
              <brief>
                <text>A pointer to a shared instance of T</text>
              </brief>
              <para>
                <text>This is a smart pointer container which can acquire shared ownership of an instance of </text>
                <mono>T</mono>
                <text> upon or after construction. The instance is guaranteed to be in a valid, but unknown state. Every recycled pointer references a valid recycle bin.</text>
              </para>
              <head>Example</head>
              <code>
                <text>static recycled&lt; std::string &gt; bin;

recycled_ptr&lt; std::string &gt; ps( bin );

// Put the string into a known state
ps-&gt;clear();</text>
              </code>
              <tparam name="T">
                <text>the type of object to acquire, which must be </text>
                <italic>DefaultConstructible</italic>
                <text>.</text>
              </tparam>
            </doc>
            <function class="constructor" name="recycled_ptr" id="VjHmeTbHs8hQENj7BgAnhmRWQdw=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="271"/>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>Upon construction, this acquires exclusive access to an object of type </text>
                  <mono>T</mono>
                  <text> which is either recycled from a global recycle bin, or newly allocated. The object is in an unknown but valid state.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>recycled_ptr&lt; std::string &gt; ps;

// Put the string into a known state
ps-&gt;clear();</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() != nullptr &amp;&amp; ! this-&gt;empty()</text>
                </code>
                <see>
                  <reference id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">recycled</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
            <function class="constructor" name="recycled_ptr" exception-spec="noexcept" id="q97hoMIS89HKG50UKgXOeADtEnc=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="321"/>
              <param name="other">
                <type class="lvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr" cv-qualifiers="const"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>If </text>
                  <mono>other</mono>
                  <text> references an object, the newly constructed pointer acquires shared ownership. Otherwise this is empty. The new pointer references the same recycle bin as </text>
                  <mono>other</mono>
                  <text>.</text>
                </para>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;other-&gt;bin() &amp;&amp; this-&gt;get() == other.get()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="other">
                  <text>The pointer to copy</text>
                </param>
              </doc>
            </function>
            <function class="constructor" name="recycled_ptr" exception-spec="noexcept" id="84CPyDVgw9SFOH0d5xvXZ3GEJ80=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="341"/>
              <param name="other">
                <type class="rvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>If </text>
                  <mono>other</mono>
                  <text> references an object, ownership is transferred including a reference to the recycle bin. After the move, the moved-from object is empty.</text>
                </para>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;other-&gt;bin() &amp;&amp; ! this-&gt;empty() &amp;&amp; other.empty()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="other">
                  <text>The pointer to move from</text>
                </param>
              </doc>
            </function>
            <function class="constructor" name="recycled_ptr" exception-spec="noexcept" id="XjR852OKdk+x5OgFgWVrVznZ9p4=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="300"/>
              <param name="value">
                <type id="EHI+o2/+5jHQW597jZMivg2DIyU=" name="std::nullptr_t"/>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>After construction, this is empty and refers to a global recycle bin.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>recycled_ptr&lt; std::string &gt; ps( nullptr );

// Acquire a string and put it into a known state
ps-&gt;acquire();
ps-&gt;clear();</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() != nullptr &amp;&amp; this-&gt;empty()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="value">
                  <text>The object to construct from</text>
                </param>
                <see>
                  <reference id="H7LYt37AqVfhsZjHCGDQEIkojqM=">acquire</reference>
                  <text>, </text>
                  <reference id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">recycled</reference>
                  <text>, </text>
                  <reference id="wqJYmH/gBkRUi2qhQzT8ZrukOu0=">release</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
            <function class="constructor" name="recycled_ptr" explicit-spec="explicit" id="iyelQG1lI7NxpWmpa7HCkVGiYrY=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="208"/>
              <param name="bin">
                <type class="lvalue-reference">
                  <pointee-type id="x2v5wd8/Skv+UtDnwS5/F27XMxc=" name="recycled&lt;T&gt;"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>Upon construction, this acquires exclusive access to an object of type </text>
                  <mono>T</mono>
                  <text> which is either recycled from the specified bin, or newly allocated. The object is in an unknown but valid state.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>static recycled&lt; std::string &gt; bin;

recycled_ptr&lt; std::string &gt; ps( bin );

// Put the string into a known state
ps-&gt;clear();</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;bin &amp;&amp; ! this-&gt;empty()</text>
                </code>
                <param name="bin">
                  <text>The recycle bin to use</text>
                </param>
                <see>
                  <reference id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">recycled</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
            <function class="constructor" name="recycled_ptr" exception-spec="noexcept" id="rIq1sfrqMSv358hn+r/zNp97Brg=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="242"/>
              <param name="bin">
                <type class="lvalue-reference">
                  <pointee-type id="x2v5wd8/Skv+UtDnwS5/F27XMxc=" name="recycled&lt;T&gt;"/>
                </type>
              </param>
              <param>
                <type id="EHI+o2/+5jHQW597jZMivg2DIyU=" name="std::nullptr_t"/>
              </param>
              <doc>
                <brief>
                  <text>Constructor</text>
                </brief>
                <para>
                  <text>After construction, this is empty and refers to the specified recycle bin.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>static recycled&lt; std::string &gt; bin;

recycled_ptr&lt; std::string &gt; ps( bin, nullptr );

// Acquire a string and put it into a known state
ps-&gt;acquire();
ps-&gt;clear();</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;bin &amp;&amp; this-&gt;empty()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <param name="bin">
                  <text>The recycle bin to use</text>
                </param>
                <see>
                  <reference id="H7LYt37AqVfhsZjHCGDQEIkojqM=">acquire</reference>
                  <text>, </text>
                  <reference id="x2v5wd8/Skv+UtDnwS5/F27XMxc=">recycled</reference>
                  <text>, </text>
                  <reference id="wqJYmH/gBkRUi2qhQzT8ZrukOu0=">release</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
            <function class="destructor" name="~recycled_ptr" id="fYaAa1Ns5xDYnbRDkpXg/vguMV8=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="177"/>
              <doc>
                <brief>
                  <text>Destructor</text>
                </brief>
                <para>
                  <text>If this is not empty, shared ownership of the pointee is released. If this was the last reference, the object is returned to the original recycle bin.</text>
                </para>
                <head>Effects</head>
                <code>
                  <text>this-&gt;release();</text>
                </code>
              </doc>
            </function>
            <function name="operator=" exception-spec="noexcept" id="kPCMjQfQ6LeMUk9wpxzd0pKjPR0=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="395"/>
              <attr id="operator" name="assign" value="14"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr"/>
                </type>
              </return>
              <param name="other">
                <type class="lvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr" cv-qualifiers="const"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Assignment</text>
                </brief>
                <para>
                  <text>If </text>
                  <mono>other</mono>
                  <text> references an object, this acquires shared ownership and references the same recycle bin as </text>
                  <mono>other</mono>
                  <text>. The previous object if any is released.</text>
                </para>
                <head>Effects</head>
                <code>
                  <text>this-&gt;release()</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;other-&gt;bin() &amp;&amp; this-&gt;get() == other.get()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>*this</mono>
                </returns>
                <param name="other">
                  <text>The pointer to copy from</text>
                </param>
              </doc>
            </function>
            <function name="operator=" exception-spec="noexcept" id="tN2V1SD4chb1aq2jfot9PeEVJ2g=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="367"/>
              <attr id="operator" name="assign" value="14"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr"/>
                </type>
              </return>
              <param name="other">
                <type class="rvalue-reference">
                  <pointee-type id="nzXpJoD/SY/HaQ+j1P4/pDyDfbQ=" name="recycled_ptr"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Assignment</text>
                </brief>
                <para>
                  <text>If </text>
                  <mono>other</mono>
                  <text> references an object, ownership is transferred including a reference to the recycle bin. After the move, the moved-from object is empty.</text>
                </para>
                <head>Effects</head>
                <code>
                  <text>this-&gt;release()</text>
                </code>
                <head>Postconditions</head>
                <code>
                  <text>&amp;this-&gt;bin() == &amp;other-&gt;bin()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>*this</mono>
                </returns>
                <param name="other">
                  <text>The pointer to move from</text>
                </param>
              </doc>
            </function>
            <function name="acquire" id="H7LYt37AqVfhsZjHCGDQEIkojqM=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="499"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type name="T"/>
                </type>
              </return>
              <doc>
                <brief>
                  <text>Return the referenced object</text>
                </brief>
                <para>
                  <text>If this references an object, it is returned. Otherwise, exclusive ownership of a new object of type </text>
                  <mono>T</mono>
                  <text> is acquired and returned.</text>
                </para>
                <head>Postconditions</head>
                <code>
                  <text>not this-&gt;empty()</text>
                </code>
                <returns>
                  <text>A reference to the object</text>
                </returns>
              </doc>
            </function>
            <function name="bin" exception-spec="noexcept" id="lrCX94ZLdGMotI0oIpKu0tiNZG4=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="437" class="def"/>
              <attr id="is-const"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type id="x2v5wd8/Skv+UtDnwS5/F27XMxc=" name="recycled&lt;T&gt;"/>
                </type>
              </return>
              <doc>
                <brief>
                  <text>Return the referenced recycle bin</text>
                </brief>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <text>A reference to the recycle bin</text>
                </returns>
              </doc>
            </function>
            <function name="empty" exception-spec="noexcept" id="0uyawsPRLLGbFiuk1Ft9+8socK0=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="406" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="bool"/>
              </return>
              <doc>
                <brief>
                  <text>Return true if this does not reference an object</text>
                </brief>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>p_ == nullptr</mono>
                </returns>
              </doc>
            </function>
            <function name="get" exception-spec="noexcept" id="Zim1jhHRKp//mieYxy7DHKnHoZo=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="452" class="def"/>
              <attr id="is-const"/>
              <return>
                <type class="pointer">
                  <pointee-type name="T"/>
                </type>
              </return>
              <doc>
                <brief>
                  <text>Return the referenced object</text>
                </brief>
                <para>
                  <text>If this is empty, </text>
                  <mono>nullptr</mono>
                  <text> is returned.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <text>A pointer to the object</text>
                </returns>
              </doc>
            </function>
            <function name="operator*" exception-spec="noexcept" id="pYBSGDOuJ0hkPvlhNnyZKqqXi1E=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="480" class="def"/>
              <attr id="operator" name="star" value="7"/>
              <attr id="is-const"/>
              <return>
                <type class="lvalue-reference">
                  <pointee-type name="T"/>
                </type>
              </return>
              <doc>
                <brief>
                  <text>Return the referenced object</text>
                </brief>
                <head>Preconditions</head>
                <code>
                  <text>not this-&gt;empty()</text>
                </code>
                <returns>
                  <text>A reference to the object</text>
                </returns>
              </doc>
            </function>
            <function name="operator-&gt;" exception-spec="noexcept" id="TET7zmntHAKhMQ1mb9MUGLiWwWI=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="466" class="def"/>
              <attr id="operator" name="ptr" value="41"/>
              <attr id="is-const"/>
              <return>
                <type class="pointer">
                  <pointee-type name="T"/>
                </type>
              </return>
              <doc>
                <brief>
                  <text>Return the referenced object</text>
                </brief>
                <para>
                  <text>If this is empty, </text>
                  <mono>nullptr</mono>
                  <text> is returned.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <text>A pointer to the object</text>
                </returns>
              </doc>
            </function>
            <function name="release" exception-spec="noexcept" id="wqJYmH/gBkRUi2qhQzT8ZrukOu0=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="516"/>
              <doc>
                <brief>
                  <text>Release the referenced object</text>
                </brief>
                <para>
                  <text>If this references an object, it is released to the referenced recycle bin. The pointer continues to reference the same recycle bin.</text>
                </para>
                <head>Postconditions</head>
                <code>
                  <text>this-&gt;empty()</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
              </doc>
            </function>
            <function class="conversion" name="operator bool" exception-spec="noexcept" explicit-spec="explicit" id="8IZZXERbpllK6bZomLlMb2gvxwg=">
              <file short-path="boost/url/grammar/recycled.hpp" source-path="include/boost/url/grammar/recycled.hpp" line="424" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="bool"/>
              </return>
              <doc>
                <brief>
                  <text>Return true if this references an object</text>
                </brief>
                <head>Effects</head>
                <code>
                  <text>return ! this-&gt;empty();</text>
                </code>
                <head>Exception Safety</head>
                <para>
                  <text>Throws nothing.</text>
                </para>
                <returns>
                  <mono>!this-&gt;empty()</mono>
                </returns>
              </doc>
            </function>
          </class>
        </template>
        <class name="string_view_base" id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="36" class="def"/>
          <friend id="SkM0CJxXlY5Qrb/AJ8U97iXJxcc=">
            <befriended id="SkM0CJxXlY5Qrb/AJ8U97iXJxcc="/>
          </friend>
          <friend id="evQmFIytUm7bsb+yuZJVfaz3lp4=">
            <befriended id="evQmFIytUm7bsb+yuZJVfaz3lp4="/>
          </friend>
          <friend id="dQbW0x0SHjC6bYCIyGZgDYxSPEc=">
            <befriended id="dQbW0x0SHjC6bYCIyGZgDYxSPEc="/>
          </friend>
          <friend id="gNMERW7vBJ5oy0+D5SHS3lJwELE=">
            <befriended id="gNMERW7vBJ5oy0+D5SHS3lJwELE="/>
          </friend>
          <friend id="L/ezmiWj+8oAMQBf/H3xY12Tens=">
            <befriended id="L/ezmiWj+8oAMQBf/H3xY12Tens="/>
          </friend>
          <friend id="+pTwj7vLxN5lirAmjjLZFLgcAIM=">
            <befriended id="+pTwj7vLxN5lirAmjjLZFLgcAIM="/>
          </friend>
          <friend id="V8wTrpMKuyusSnj0DQUMT3AGjEM=">
            <befriended id="V8wTrpMKuyusSnj0DQUMT3AGjEM="/>
          </friend>
          <doc>
            <brief>
              <text>Common functionality for string views</text>
            </brief>
            <para>
              <text>This base class is used to provide common member functions for reference types that behave like string views. This cannot be instantiated directly; instead, derive from the type and provide constructors which offer any desired preconditions and invariants.</text>
            </para>
          </doc>
          <typedef name="const_iterator" id="M9nrRq55PVZTWigkof7hlGqhSQs=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="111"/>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
            <doc>
              <brief>
                <text>The const iterator type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="const_pointer" id="RPNsNnoyHwmywxuPxn4syH3bXek=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="105"/>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
            <doc>
              <brief>
                <text>The const pointer type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="const_reference" id="foZNP6eKrZGgZPs/IKbd+dOnIuM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="109"/>
            <type class="lvalue-reference">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
            <doc>
              <brief>
                <text>The const reference type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="const_reverse_iterator" id="cmB6LiOLkFK4MPA38l8T4GLupFw=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="115"/>
            <type id="570Q1l1MUvO3hJraLUThdr4GLPI=" name="std::reverse_iterator&lt;const_iterator&gt;"/>
            <doc>
              <brief>
                <text>The const reverse iterator type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="difference_type" id="dmpIlMstDzpGYMTB6B+hurB+mqI=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="122"/>
            <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
            <doc>
              <brief>
                <text>The difference type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="iterator" id="v2Dep12IPAm8omMGyr9KHifBXH4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="113"/>
            <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
            <doc>
              <brief>
                <text>The iterator type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="pointer" id="gbVUBvZPpjoSvvOZqK1W2zhI5AQ=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="103"/>
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
            <doc>
              <brief>
                <text>The pointer type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="reference" id="2BMU5wYwVuaXlVqUpJvke+7MMCM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="107"/>
            <type class="lvalue-reference">
              <pointee-type name="char"/>
            </type>
            <doc>
              <brief>
                <text>The reference type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="reverse_iterator" id="14arRDIBq/YgI13qmWwvuybUAb4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="118"/>
            <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
            <doc>
              <brief>
                <text>The reverse iterator type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="size_type" id="aECoDgZjoIcUl2uioc0rf6uRMMc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="120"/>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            <doc>
              <brief>
                <text>The size type</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="traits_type" id="+tfZtqIc5gHEEmeC/8lIgJYq4fI=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="99"/>
            <type name="std::char_traits&lt;char&gt;"/>
            <doc>
              <brief>
                <text>The character traits</text>
              </brief>
            </doc>
          </typedef>
          <typedef name="value_type" id="b0aWgwrT3AK3/HLk/RWi8rRkN5s=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="101"/>
            <type name="char"/>
            <doc>
              <brief>
                <text>The value type</text>
              </brief>
            </doc>
          </typedef>
          <function name="at" id="nQC4Y2i6s+wheRlt1v5rJGHNugs=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="331" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
            </return>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Access a character</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::at</mono>
              </para>
              <returns>
                <text>The character at the position</text>
              </returns>
              <param name="pos">
                <text>The position to access</text>
              </param>
            </doc>
          </function>
          <function name="back" exception-spec="noexcept" id="GPSBm+5EDtUTksx88cke1u+q9fA=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="355" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
            </return>
            <doc>
              <brief>
                <text>Return the last character</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::back</mono>
              </para>
              <returns>
                <text>The last character</text>
              </returns>
            </doc>
          </function>
          <function name="begin" exception-spec="noexcept" id="EZ1FqJVEv6ucG/n1Wsn17g4MDuU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="177" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return an iterator to the beginning</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::begin</mono>
              </para>
              <returns>
                <text>An iterator to the beginning</text>
              </returns>
            </doc>
          </function>
          <function name="cbegin" exception-spec="noexcept" id="xhLRk2Z+3lJ0NKV/ZzG0ObdE4Vc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="199" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return an iterator to the beginning</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::cbegin</mono>
              </para>
              <returns>
                <text>An iterator to the beginning</text>
              </returns>
            </doc>
          </function>
          <function name="cend" exception-spec="noexcept" id="Rx+0KJ+TNUnikAkigK/WTETroXU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="210" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return an iterator to the end</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::cend</mono>
              </para>
              <returns>
                <text>An iterator to the end</text>
              </returns>
            </doc>
          </function>
          <function name="compare" exception-spec="noexcept" id="IRvtO34ISMkRvDCtGybUVmg7Mpw=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="413" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="str">
                <text>The string to compare</text>
              </param>
            </doc>
          </function>
          <function name="compare" exception-spec="noexcept" id="cNRLSdfTDXzapcGN7U2pkhe09u8=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="459" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="s">
                <text>The string to compare</text>
              </param>
            </doc>
          </function>
          <function name="compare" id="p84tStAnLdfQHeETDgnjtJoYiqE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="428" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="pos1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="pos1">
                <text>The position to start comparing from</text>
              </param>
              <param name="n1">
                <text>The number of characters to compare</text>
              </param>
              <param name="str">
                <text>The string to compare</text>
              </param>
            </doc>
          </function>
          <function name="compare" id="sURljmP39tfuj1ZZWF8Ttf48S6k=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="474" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="pos1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="pos1">
                <text>The position to start comparing from</text>
              </param>
              <param name="n1">
                <text>The number of characters to compare</text>
              </param>
              <param name="s">
                <text>The string to compare</text>
              </param>
            </doc>
          </function>
          <function name="compare" id="wZOXO+R6A3OjQdJiNoaXo0DPlaE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="490" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="pos1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="n2">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="pos1">
                <text>The position to start comparing from</text>
              </param>
              <param name="n1">
                <text>The number of characters to compare</text>
              </param>
              <param name="s">
                <text>The string to compare</text>
              </param>
              <param name="n2">
                <text>The number of characters to compare</text>
              </param>
            </doc>
          </function>
          <function name="compare" id="4gqP5TnZo4twWHg6MUkJBPf8gqo=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="445" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="pos1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n1">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos2">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n2">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing to another string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::compare</mono>
              </para>
              <returns>
                <text>The result of the comparison</text>
              </returns>
              <param name="pos1">
                <text>The position to start comparing from</text>
              </param>
              <param name="n1">
                <text>The number of characters to compare</text>
              </param>
              <param name="str">
                <text>The string to compare</text>
              </param>
              <param name="pos2">
                <text>The position to start comparing from</text>
              </param>
              <param name="n2">
                <text>The number of characters to compare</text>
              </param>
            </doc>
          </function>
          <function name="contains" exception-spec="noexcept" id="hKoap9FjP5AWE6/DO69KvjFf2GY=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="942" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="sv">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Return true if matching characters are found</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::contains</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the string contains the characters, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="sv">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="contains" exception-spec="noexcept" id="SANFmu7YhW7sQVghxqUDA0HYZXU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="954" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <doc>
              <brief>
                <text>Return true if matching characters are found</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::contains</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the string contains the character, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
            </doc>
          </function>
          <function name="contains" exception-spec="noexcept" id="MV82Q9BS0ywf/roJrND9qK4OSDk=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="966" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return true if matching characters are found</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::contains</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the string contains the characters, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="copy" id="MQMMmX8IqIdfOm6FYDjZZidJvfc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="384" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char"/>
              </type>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Copy the characters to another buffer</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::copy</mono>
              </para>
              <returns>
                <text>The number of characters copied</text>
              </returns>
              <param name="s">
                <text>The destination buffer</text>
              </param>
              <param name="n">
                <text>The number of characters to copy</text>
              </param>
              <param name="pos">
                <text>The position to start from</text>
              </param>
            </doc>
          </function>
          <function name="crbegin" exception-spec="noexcept" id="xeK5f2DKhD4FxCGyXOyhullgYmo=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="245" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return a reverse iterator to the end</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::crbegin</mono>
              </para>
              <returns>
                <text>A reverse iterator to the end</text>
              </returns>
            </doc>
          </function>
          <function name="crend" exception-spec="noexcept" id="1CpIQ/DMUJBo1D7302C0yEQZuOs=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="257" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return a reverse iterator to the beginning</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::crend</mono>
              </para>
              <returns>
                <text>A reverse iterator to the beginning</text>
              </returns>
            </doc>
          </function>
          <function name="data" exception-spec="noexcept" id="HTcdnV1aiZerjYE3I6KR5Gq7cf0=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="367" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="RPNsNnoyHwmywxuPxn4syH3bXek=" name="const_pointer"/>
            </return>
            <doc>
              <brief>
                <text>Return a pointer to the character buffer</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::data</mono>
              </para>
              <returns>
                <text>A pointer to the character buffer</text>
              </returns>
            </doc>
          </function>
          <function name="empty" exception-spec="noexcept" id="OzkudhIJlNyjV0TJmLlM1RnFEVc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="304" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if the string is empty</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::size</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the string is empty</text>
              </returns>
            </doc>
          </function>
          <function name="end" exception-spec="noexcept" id="lnRLWv5zOOX26+6Kh57i38FcfZk=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="188" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return an iterator to the end</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::end</mono>
              </para>
              <returns>
                <text>An iterator to the end</text>
              </returns>
            </doc>
          </function>
          <function name="ends_with" exception-spec="noexcept" id="qZO0HQe8HcXAyHXcIQg/g3k7/ns=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="547" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching suffix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::ends_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the suffix matches</text>
              </returns>
              <param name="x">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="ends_with" exception-spec="noexcept" id="bqqpptdDDphYcnOxoQYZ8bbItrM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="560" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type name="char"/>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching suffix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::ends_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the suffix matches</text>
              </returns>
              <param name="x">
                <text>The character to search for</text>
              </param>
            </doc>
          </function>
          <function name="ends_with" exception-spec="noexcept" id="zfWvE3uSkk8/XX+XPIVSaZzh6Ig=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="573" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching suffix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::ends_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the suffix matches</text>
              </returns>
              <param name="x">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="find" exception-spec="noexcept" id="2lfO3WOzLvG1bfwozRhCmBlrqrg=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="589" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find" exception-spec="noexcept" id="BOuO0aTf73DXdcvqk1MTaHMpXbo=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="603" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find" exception-spec="noexcept" id="xo8geXuOyX+q7RM3qua7kwLktr0=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="632" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find" exception-spec="noexcept" id="dia+zPAAu3luYQToXoYd7W8/Wic=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="618" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="find_first_not_of" exception-spec="noexcept" id="5d938wswt4edetpV8UL9bD5KDc4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="825" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_not_of</mono>
              </para>
              <returns>
                <text>The position of the first non-match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_not_of" exception-spec="noexcept" id="IfcO4L0ztTwJMGHApS0AToDt5Aw=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="839" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_not_of</mono>
              </para>
              <returns>
                <text>The position of the first non-match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_not_of" exception-spec="noexcept" id="wmKQqbOIrZmJ/7Cp7VJTFNavoow=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="868" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_not_of</mono>
              </para>
              <returns>
                <text>The position of the first non-match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_not_of" exception-spec="noexcept" id="qeiTNiB98fApJrmQcyF37NoW9j4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="854" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_not_of</mono>
              </para>
              <returns>
                <text>The position of the first non-match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="find_first_of" exception-spec="noexcept" id="q7omXr2uqTr3v1fJVzA94fhapvE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="707" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_of</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_of" exception-spec="noexcept" id="TcE6uiDkICSzkegC9lzTM87jwlo=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="721" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_of</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_of" exception-spec="noexcept" id="iz2GUCM611IYR/kjQB79q1n872g=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="750" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_of</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_first_of" exception-spec="noexcept" id="r4kUkL0YV/fA06QtJmR/TjXUtao=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="736" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the first match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_first_of</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="find_last_not_of" exception-spec="noexcept" id="Nfr+v2bpMFyORAQhtwLZ5J432w4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="884" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_not_of</mono>
              </para>
              <returns>
                <text>The position of the last non-match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_not_of" exception-spec="noexcept" id="2AMMYo3v1gttHFufhYHieIj8bdI=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="898" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_not_of</mono>
              </para>
              <returns>
                <text>The position of the last non-match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_not_of" exception-spec="noexcept" id="ZPpivnq8JwObb7gqwj6DDXtVLJA=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="927" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_not_of</mono>
              </para>
              <returns>
                <text>The position of the last non-match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_not_of" exception-spec="noexcept" id="Gu5ADf/dTdCmnisbu/DaC5FtlDQ=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="913" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last non-match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_not_of</mono>
              </para>
              <returns>
                <text>The position of the last non-match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="find_last_of" exception-spec="noexcept" id="AZeST6eCw9rmQ9mUiVCMY8YyfjU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="766" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_of</mono>
              </para>
              <returns>
                <text>The position of the last match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_of" exception-spec="noexcept" id="x9U9ssyIOQKxLkWfX/TBjJwL3gg=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="780" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_of</mono>
              </para>
              <returns>
                <text>The position of the last match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_of" exception-spec="noexcept" id="j10zGQ8rw2lMRMG+TCKNGInKHK4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="809" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_of</mono>
              </para>
              <returns>
                <text>The position of the last match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="find_last_of" exception-spec="noexcept" id="IIJbBmNRXB9cDV2Hodq45rXi+QY=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="795" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of the last match</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::find_last_of</mono>
              </para>
              <returns>
                <text>The position of the last match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="front" exception-spec="noexcept" id="GCtLfDBN/T6snyktUaiy6XEF9z0=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="343" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
            </return>
            <doc>
              <brief>
                <text>Return the first character</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::front</mono>
              </para>
              <returns>
                <text>The first character</text>
              </returns>
            </doc>
          </function>
          <function name="length" exception-spec="noexcept" id="Hl4C4fbIugV95gCntPCSc1vWBh0=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="282" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <doc>
              <brief>
                <text>Return the size</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::length</mono>
              </para>
              <returns>
                <text>The size</text>
              </returns>
            </doc>
          </function>
          <function name="max_size" exception-spec="noexcept" id="Qyt6qjjrJx0hZ8PQ6zdSAvGHKvU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="293" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <doc>
              <brief>
                <text>Return the maximum allowed size</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::max_size</mono>
              </para>
              <returns>
                <text>The maximum allowed size</text>
              </returns>
            </doc>
          </function>
          <function name="operator[]" exception-spec="noexcept" id="8YWsfJWY2hTYjFk9Llyg3aJV1hk=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="318" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="subs" value="43"/>
            <attr id="is-const"/>
            <return>
              <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
            </return>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Access a character</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::operator[]</mono>
              </para>
              <returns>
                <text>The character at the position</text>
              </returns>
              <param name="pos">
                <text>The position to access</text>
              </param>
            </doc>
          </function>
          <function name="rbegin" exception-spec="noexcept" id="L0f4ee/wt58Mb/deFLDyLlyfVGY=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="221" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return a reverse iterator to the end</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rbegin</mono>
              </para>
              <returns>
                <text>A reverse iterator to the end</text>
              </returns>
            </doc>
          </function>
          <function name="rend" exception-spec="noexcept" id="RdDaHzncr8vavW/PrNUWQxSXPY4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="233" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
            </return>
            <doc>
              <brief>
                <text>Return a reverse iterator to the beginning</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rend</mono>
              </para>
              <returns>
                <text>A reverse iterator to the beginning</text>
              </returns>
            </doc>
          </function>
          <function name="rfind" exception-spec="noexcept" id="7eScYOCz/vJ9fpDMMotM0+I8qOE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="648" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="str">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rfind</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="str">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="rfind" exception-spec="noexcept" id="67zrufCp4NocNFW+MQmW2AZJHKM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="662" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="c">
              <type name="char"/>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rfind</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="c">
                <text>The character to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="rfind" exception-spec="noexcept" id="18WfSjD0IUf2RSlBRXtH9ZUGgpE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="691" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rfind</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
            </doc>
          </function>
          <function name="rfind" exception-spec="noexcept" id="u8pQymbEkfioZr0NHqfpMpKZWho=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="677" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <param name="s">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="pos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return the position of matching characters</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::rfind</mono>
              </para>
              <returns>
                <text>The position of the first match</text>
              </returns>
              <param name="s">
                <text>The characters to search for</text>
              </param>
              <param name="pos">
                <text>The position to start searching from</text>
              </param>
              <param name="n">
                <text>The number of characters to search for</text>
              </param>
            </doc>
          </function>
          <function name="size" exception-spec="noexcept" id="XdOsrY6qbLFskpkyLJ49siyex04=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="271" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </return>
            <doc>
              <brief>
                <text>Return the size</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::size</mono>
              </para>
              <returns>
                <text>The size</text>
              </returns>
            </doc>
          </function>
          <function name="starts_with" exception-spec="noexcept" id="b1zBGpDL1DMowpruv731stD3Vgw=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="506" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching prefix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::starts_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the prefix matches</text>
              </returns>
              <param name="x">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="starts_with" exception-spec="noexcept" id="v3qqifP7Un5JkmpKk4TtAxbqINc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="519" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type name="char"/>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching prefix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::starts_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the prefix matches</text>
              </returns>
              <param name="x">
                <text>The character to search for</text>
              </param>
            </doc>
          </function>
          <function name="starts_with" exception-spec="noexcept" id="1Y9DRmbXN1J7HNFxFNed/jYhRcs=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="532" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="x">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return true if a matching prefix exists</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::starts_with</mono>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the prefix matches</text>
              </returns>
              <param name="x">
                <text>The string to search for</text>
              </param>
            </doc>
          </function>
          <function name="substr" id="mRqi8IZOOX0xLFHe28WQ8Zwvmkg=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="398" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <param name="pos" default="0">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <param name="n" default="core::string_view::npos">
              <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
            </param>
            <doc>
              <brief>
                <text>Return a view to part of the string</text>
              </brief>
              <para>
                <text>See </text>
                <mono>core::string_view::substr</mono>
              </para>
              <returns>
                <text>A view to the substring</text>
              </returns>
              <param name="pos">
                <text>The position to start from</text>
              </param>
              <param name="n">
                <text>The number of characters</text>
              </param>
            </doc>
          </function>
          <function class="conversion" name="operator basic_string&lt;char&gt;" exception-spec="noexcept" explicit-spec="explicit" id="bRcyVQ6ZJghIfxH913mNeaUsZuo=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="160" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
            </return>
            <doc>
              <brief>
                <text>Conversion</text>
              </brief>
              <para>
                <text>Conversion to std::string is explicit because assigning to string using an implicit constructor does not preserve capacity.</text>
              </para>
              <returns>
                <text>A string with the same contents</text>
              </returns>
            </doc>
          </function>
          <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="6BCCiqqFBnxfN5d9Ki/oUcu88Ic=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="133" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="7/6mcOtEWpTb+zIbzRlao/fWWYU=" name="std::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Conversion</text>
              </brief>
              <returns>
                <text>A string view with the same contents</text>
              </returns>
            </doc>
          </function>
          <variable name="npos" id="axqsst2fEEr0KskCuLNS6wtH26E=" default="core::string_view::npos">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="125" class="def"/>
            <attr id="storage-class" name="static" value="2"/>
            <attr id="is-inline"/>
            <attr id="is-constexpr"/>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            <doc>
              <brief>
                <text>A constant used to represent &quot;no position&quot;</text>
              </brief>
            </doc>
          </variable>
          <function class="constructor" name="string_view_base" access="protected" id="IV8SmgOCOgWMLsJhq84LpTYoRJw=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="82" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
            </doc>
          </function>
          <function class="constructor" name="string_view_base" access="protected" id="4yjEImzOfkZho2Sde3RRkKGe5QQ=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="86" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="other">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
          <function class="constructor" name="string_view_base" access="protected" exception-spec="noexcept" id="nU/e9qf+WxQbwsZV57Tug+HU0xU=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="47" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="s">
                <text>The string view</text>
              </param>
            </doc>
          </function>
          <function class="constructor" name="string_view_base" access="protected" exception-spec="noexcept" id="oX9zkATN+VHTbI3eiYiNpQ+/aPA=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="59" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="data">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="size">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="data">
                <text>The character buffer</text>
              </param>
              <param name="size">
                <text>The number of characters</text>
              </param>
            </doc>
          </function>
          <function name="operator=" access="protected" id="aIJpv/jZ2tM+tFNkNsdGXClHwE0=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="94" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Assignment</text>
              </brief>
              <returns>
                <text>A reference to this object</text>
              </returns>
              <param name="other">
                <text>The object to assign</text>
              </param>
            </doc>
          </function>
          <function name="swap" access="protected" exception-spec="noexcept" id="y5e2cWu7aRkl+6aRLABfP+waghM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="73" class="def"/>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Swap</text>
              </brief>
              <param name="s">
                <text>The object to swap with</text>
              </param>
            </doc>
          </function>
          <variable name="s_" access="protected" id="j2zlfB2FMKW7UWEt2w+csPbI5o4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="41"/>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            <doc>
              <brief>
                <text>The referenced character buffer</text>
              </brief>
            </doc>
          </variable>
        </class>
        <template>
          <tparam name="Unsigned" class="type"/>
          <struct name="unsigned_rule" id="RxDnM7pIw/ahE/QBEDu7T14vtTs=">
            <file short-path="boost/url/grammar/unsigned_rule.hpp" source-path="include/boost/url/grammar/unsigned_rule.hpp" line="52" class="def"/>
            <doc>
              <brief>
                <text>Match an unsigned decimal</text>
              </brief>
              <para>
                <text>Extra leading zeroes are disallowed.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = Unsigned;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="rDDzgULcyKeWVv6ArwS9ei06m8E=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; unsigned short &gt; rv = parse( &quot;32767&quot;, unsigned_rule&lt; unsigned short &gt;{} );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>unsigned      = &quot;0&quot; / ( [&quot;1&quot;...&quot;9&quot;] *DIGIT )</text>
              </code>
              <tparam name="Unsigned">
                <text>The unsigned integer type used to store the result.</text>
              </tparam>
              <see>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
                <text>.</text>
              </see>
            </doc>
            <namespace-alias name="value_type" id="y37ryxXYrjlxGpVsQjXKxvsbLLs=">
              <file short-path="boost/url/grammar/unsigned_rule.hpp" source-path="include/boost/url/grammar/unsigned_rule.hpp" line="61"/>
              <type name="Unsigned"/>
            </namespace-alias>
            <function name="parse" exception-spec="noexcept" id="rDDzgULcyKeWVv6ArwS9ei06m8E=">
              <file short-path="boost/url/grammar/unsigned_rule.hpp" source-path="include/boost/url/grammar/unsigned_rule.hpp" line="63"/>
              <attr id="has-trailing-return"/>
              <attr id="is-const"/>
              <return>
                <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;value_type&gt;"/>
              </return>
              <param name="it">
                <type class="lvalue-reference">
                  <pointee-type class="pointer">
                    <pointee-type name="char" cv-qualifiers="const"/>
                  </pointee-type>
                </type>
              </param>
              <param name="end">
                <type class="pointer">
                  <pointee-type name="char" cv-qualifiers="const"/>
                </type>
              </param>
            </function>
          </struct>
        </template>
        <enum name="condition" class="scoped" id="HB8NuzkdJne0JnuamlIzyVfG2z4=">
          <base>
            <type name="int"/>
          </base>
          <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="114" class="def"/>
          <doc>
            <brief>
              <text>Error conditions for errors received from rules</text>
            </brief>
            <see>
              <reference id="/RsVEYVgVIkSjV+EtQuU7JX6dIY=">error</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>.</text>
            </see>
          </doc>
          <enum-constant name="fatal" initializer="1" id="X1swyeizWn5vdUAIFeTZCX2AMtA=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="121"/>
            <doc>
              <brief>
                <text>A fatal error in syntax was encountered.</text>
              </brief>
              <para>
                <text>This indicates that parsing cannot continue.</text>
              </para>
            </doc>
          </enum-constant>
        </enum>
        <enum name="error" class="scoped" id="/RsVEYVgVIkSjV+EtQuU7JX6dIY=">
          <base>
            <type name="int"/>
          </base>
          <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="26" class="def"/>
          <doc>
            <brief>
              <text>Error codes returned when using rules</text>
            </brief>
            <see>
              <reference id="HB8NuzkdJne0JnuamlIzyVfG2z4=">condition</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>.</text>
            </see>
          </doc>
          <enum-constant name="need_more" initializer="1" id="a/THTSv6k7njvbh+81BNyu1ppl8=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="48"/>
            <doc>
              <brief>
                <text>More input is needed to match the rule</text>
              </brief>
              <para>
                <text>A rule reached the end of the input, resulting in a partial match. The error is recoverable; the caller may obtain more input if possible and attempt to parse the character buffer again. Custom rules should only return this error if it is completely unambiguous that the rule cannot be matched without more input.</text>
              </para>
            </doc>
          </enum-constant>
          <enum-constant name="mismatch" initializer="2" id="a0UOTldvUpYmePWJT6+iE5qk5DE=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="58"/>
            <doc>
              <brief>
                <text>The rule did not match the input.</text>
              </brief>
              <para>
                <text>This error is returned when a rule fails to match the input. The error is recoverable; the caller may rewind the input pointer and attempt to parse again using a different rule.</text>
              </para>
            </doc>
          </enum-constant>
          <enum-constant name="end_of_range" initializer="3" id="21g3KEjdyvVJs22ysirzt+ZkWDM=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="71"/>
            <doc>
              <brief>
                <text>A rule reached the end of a range</text>
              </brief>
              <para>
                <text>This indicates that the input was consumed when parsing a </text>
                <reference id="+9pPsGvBtUttdLyyLFPI7ibWjaE=">range</reference>
                <text>. The </text>
                <reference id="KRm16yawSU2JFWabmZP+Z4VVllM=">range_rule</reference>
                <text> avoids rewinding the input buffer when this error is returned. Thus the consumed characters are be considered part of the range without contributing additional elements.</text>
              </para>
            </doc>
          </enum-constant>
          <enum-constant name="leftover" initializer="4" id="bFZ3Y9LHNGyUwrhSzaAWpwu5/do=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="76"/>
            <doc>
              <brief>
                <text>Leftover input remaining after match.</text>
              </brief>
            </doc>
          </enum-constant>
          <enum-constant name="invalid" initializer="5" id="eKR6AVdlzmA8Hi3rkPa1GzxqRRo=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="94"/>
            <doc>
              <brief>
                <text>A rule encountered unrecoverable invalid input.</text>
              </brief>
              <para>
                <text>This error is returned when input is matching but one of the requirements is violated. For example if a percent escape is found, but one or both characters that follow are not valid hexadecimal digits. This is usually an unrecoverable error.</text>
              </para>
            </doc>
          </enum-constant>
          <enum-constant name="out_of_range" initializer="6" id="psAY8NapcunlU2KJF9KY2kEhctA=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="98"/>
            <doc>
              <brief>
                <text>An integer overflowed during parsing.</text>
              </brief>
            </doc>
          </enum-constant>
          <enum-constant name="syntax" initializer="7" id="RIi3ChjIouMTYaME852w0wX2S/4=">
            <file short-path="boost/url/grammar/error.hpp" source-path="include/boost/url/grammar/error.hpp" line="103"/>
            <doc>
              <brief>
                <text>An unspecified syntax error was found.</text>
              </brief>
            </doc>
          </enum-constant>
        </enum>
        <function name="ci_compare" exception-spec="noexcept" id="uoHBJFmwhkbiP8wxUin0sZRRl8c=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="120"/>
          <return>
            <type name="int"/>
          </return>
          <param name="s0">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="s1">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the case-insensitive comparison of s0 and s1</text>
            </brief>
            <para>
              <text>This returns the lexicographical comparison of two strings, ignoring case. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( ci_compare( &quot;boost&quot;, &quot;Boost&quot; ) == 0 );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>0 if the strings are equal, -1 if </text>
              <mono>s0</mono>
              <text> is less than </text>
              <mono>s1</mono>
              <text>, or 1 if </text>
              <mono>s0</mono>
              <text> is greater than s1.</text>
            </returns>
            <param name="s0">
              <text>The first string</text>
            </param>
            <param name="s1">
              <text>The second string</text>
            </param>
            <see>
              <reference id="sptDPr3Ix33X6DX8v6cIDLD/zk0=">ci_is_equal</reference>
              <text>, </text>
              <reference id="pvpJA5sq72L2h76KosSqrJ2IccM=">ci_is_less</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="ci_digest" exception-spec="noexcept" id="9LlLzFVP/IbL/LcZtLU7W/WJuXI=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="140"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the case-insensitive digest of a string</text>
            </brief>
            <para>
              <text>The hash function is non-cryptographic and not hardened against algorithmic complexity attacks. Returned digests are suitable for usage in unordered containers. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <returns>
              <text>The digest</text>
            </returns>
            <param name="s">
              <text>The string</text>
            </param>
          </doc>
        </function>
        <function name="ci_is_equal" exception-spec="noexcept" id="uRewWrDK07k8ZT11CL3sNKDqh4s=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="204" class="def"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="s0">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="s1">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return true if s0 equals s1 using case-insensitive comparison</text>
            </brief>
            <para>
              <text>The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( ci_is_equal( &quot;Boost&quot;, &quot;boost&quot; ) );</text>
            </code>
            <returns>
              <mono>true</mono>
              <text> if </text>
              <mono>s0</mono>
              <text> case-insensitively equals </text>
              <mono>s1</mono>
              <text>, otherwise </text>
              <mono>false</mono>
            </returns>
            <param name="s0">
              <text>The first string</text>
            </param>
            <param name="s1">
              <text>The second string</text>
            </param>
            <see>
              <reference id="uoHBJFmwhkbiP8wxUin0sZRRl8c=">ci_compare</reference>
              <text>, </text>
              <reference id="pvpJA5sq72L2h76KosSqrJ2IccM=">ci_is_less</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="String0" class="type"/>
          <tparam name="String1" class="type"/>
          <function name="ci_is_equal" requires="! std::is_convertible&lt;
                String0, core::string_view&gt;::value ||
            ! std::is_convertible&lt;
                String1, core::string_view&gt;::value" id="ab1wPLQTeuA1s8OWUT0Cwshrbfc=">
            <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="164" class="def"/>
            <attr id="has-trailing-return"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="String0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="String1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return true if s0 equals s1 using case-insensitive comparison</text>
              </brief>
              <para>
                <text>The function is defined only for strings containing low-ASCII characters.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( ci_is_equal( &quot;Boost&quot;, &quot;boost&quot; ) );</text>
              </code>
              <returns>
                <mono>true</mono>
                <text> if </text>
                <mono>s0</mono>
                <text> case-insensitively equals </text>
                <mono>s1</mono>
                <text>, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
              <see>
                <reference id="uoHBJFmwhkbiP8wxUin0sZRRl8c=">ci_compare</reference>
                <text>, </text>
                <reference id="pvpJA5sq72L2h76KosSqrJ2IccM=">ci_is_less</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="ci_is_less" exception-spec="noexcept" id="pvpJA5sq72L2h76KosSqrJ2IccM=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="239" class="def"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="s0">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="s1">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return true if s0 is less than s1 using case-insensitive comparison</text>
            </brief>
            <para>
              <text>The comparison algorithm implements a case-insensitive total order on the set of all strings; however, it is not a lexicographical comparison. The function is defined only for strings containing low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( ! ci_is_less( &quot;Boost&quot;, &quot;boost&quot; ) );</text>
            </code>
            <returns>
              <mono>true</mono>
              <text> if </text>
              <mono>s0</mono>
              <text> is case-insensitively less than </text>
              <mono>s1</mono>
              <text>, otherwise </text>
              <mono>false</mono>
            </returns>
            <param name="s0">
              <text>The first string</text>
            </param>
            <param name="s1">
              <text>The second string</text>
            </param>
            <see>
              <reference id="uoHBJFmwhkbiP8wxUin0sZRRl8c=">ci_compare</reference>
              <text>, </text>
              <reference id="sptDPr3Ix33X6DX8v6cIDLD/zk0=">ci_is_equal</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="delim_rule" exception-spec="noexcept" id="Lf/90CiKWOFbDeU17ozZiB9Q1V8=">
          <file short-path="boost/url/grammar/delim_rule.hpp" source-path="include/boost/url/grammar/delim_rule.hpp" line="79" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <return>
            <type id="3CTA0y/pdHpybn8r5XIQDF7OBlE=" name="implementation_defined::ch_delim_rule"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Match a character literal</text>
            </brief>
            <para>
              <text>This matches the specified character. The value is a reference to the character in the underlying buffer, expressed as a </text>
              <mono>core::string_view</mono>
              <text>. The function </text>
              <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
              <text> may be used to turn this into </text>
              <mono>void</mono>
              <text> instead. If there is no more input, the error code </text>
              <reference id="a/THTSv6k7njvbh+81BNyu1ppl8=">error::need_more</reference>
              <text> is returned.</text>
            </para>
            <head>Value Type</head>
            <code>
              <text>using value_type = core::string_view;</text>
            </code>
            <head>Example</head>
            <para>
              <text>Rules are used with the function </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;.&quot;, delim_rule(&apos;.&apos;) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>char        = %00-FF</text>
            </code>
            <returns>
              <text>A rule which matches the character.</text>
            </returns>
            <param name="ch">
              <text>The character to match</text>
            </param>
            <see>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="CS" class="type"/>
          <function name="delim_rule" exception-spec="noexcept" requires="! std::is_convertible&lt;
        CS, char&gt;::value" id="mrjPXnRGDS/ACI0EhgZ+RLhTU90=">
            <file short-path="boost/url/grammar/delim_rule.hpp" source-path="include/boost/url/grammar/delim_rule.hpp" line="157" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="Mn+TpHAfUsKvpUzJ4XXH4KRW+Hw=" name="implementation_defined::cs_delim_rule&lt;CS&gt;"/>
            </return>
            <param name="cs">
              <type class="lvalue-reference">
                <pointee-type name="CS" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match a single character from a character set</text>
              </brief>
              <para>
                <text>This matches exactly one character which belongs to the specified character set. The value is a reference to the character in the underlying buffer, expressed as a </text>
                <mono>core::string_view</mono>
                <text>. The function </text>
                <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
                <text> may be used to turn this into </text>
                <mono>void</mono>
                <text> instead. If there is no more input, the error code </text>
                <reference id="a/THTSv6k7njvbh+81BNyu1ppl8=">error::need_more</reference>
                <text> is returned.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = core::string_view;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; core::string_view &gt; rv = parse( &quot;X&quot;, delim_rule( alpha_chars ) );</text>
              </code>
              <returns>
                <text>A rule which matches a single character from the set.</text>
              </returns>
              <param name="cs">
                <text>The character set to use.</text>
              </param>
              <see>
                <reference id="d7YdTQNJGO03J/WSHg33UUwcLdU=">alpha_chars</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="CS" class="type"/>
          <function name="find_if" exception-spec="noexcept" id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">
            <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="144" class="def"/>
            <return>
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </return>
            <param name="first">
              <type class="pointer" cv-qualifiers="const">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="last">
              <type class="pointer" cv-qualifiers="const">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="cs">
              <type class="lvalue-reference">
                <pointee-type name="CS" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Find the first character in the string that is in the set.</text>
              </brief>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A pointer to the found character, otherwise the value </text>
                <mono>last</mono>
                <text>.</text>
              </returns>
              <param name="first">
                <text>A pointer to the first character in the string to search.</text>
              </param>
              <param name="last">
                <text>A pointer to one past the last character in the string to search.</text>
              </param>
              <param name="cs">
                <text>The character set to use.</text>
              </param>
              <see>
                <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="CS" class="type"/>
          <function name="find_if_not" exception-spec="noexcept" id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">
            <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="182" class="def"/>
            <return>
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </return>
            <param name="first">
              <type class="pointer" cv-qualifiers="const">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="last">
              <type class="pointer" cv-qualifiers="const">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="cs">
              <type class="lvalue-reference">
                <pointee-type name="CS" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Find the first character in the string that is not in CharSet</text>
              </brief>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A pointer to the found character, otherwise the value </text>
                <mono>last</mono>
                <text>.</text>
              </returns>
              <param name="first">
                <text>A pointer to the first character in the string to search.</text>
              </param>
              <param name="last">
                <text>A pointer to one past the last character in the string to search.</text>
              </param>
              <param name="cs">
                <text>The character set to use.</text>
              </param>
              <see>
                <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="hexdig_value" exception-spec="noexcept" id="Euqnbrbiv6WcHygsjJQdaZ1rnhg=">
          <file short-path="boost/url/grammar/hexdig_chars.hpp" source-path="include/boost/url/grammar/hexdig_chars.hpp" line="117" class="def"/>
          <return>
            <type name="signed char"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return the decimal value of a hex character</text>
            </brief>
            <para>
              <text>This function returns the decimal value of a hexadecimal character, or -1 if the argument is not a valid hexadecimal digit.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>HEXDIG      = DIGIT
            / &quot;A&quot; / &quot;B&quot; / &quot;C&quot; / &quot;D&quot; / &quot;E&quot; / &quot;F&quot;
            / &quot;a&quot; / &quot;b&quot; / &quot;c&quot; / &quot;d&quot; / &quot;e&quot; / &quot;f&quot;</text>
            </code>
            <returns>
              <text>The decimal value or -1</text>
            </returns>
            <param name="ch">
              <text>The character to check</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="R" class="type"/>
          <function name="not_empty_rule" id="T0Kj3BI+iG7hOIjh52aUMxjy2vY=">
            <file short-path="boost/url/grammar/not_empty_rule.hpp" source-path="include/boost/url/grammar/not_empty_rule.hpp" line="72" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="7Q7zhRx23P+FJ7L7QnHWo4R/dFY=" name="implementation_defined::not_empty_rule_t&lt;R&gt;"/>
            </return>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match another rule, if the result is not empty</text>
              </brief>
              <para>
                <text>This adapts another rule such that when an empty string is successfully parsed, the result is an error.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = typename Rule::value_type;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; decode_view &gt; rv = parse( &quot;Program%20Files&quot;,
    not_empty_rule( pct_encoded_rule( unreserved_chars ) ) );</text>
              </code>
              <returns>
                <text>The adapted rule</text>
              </returns>
              <param name="r">
                <text>The rule to match</text>
              </param>
              <see>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
                <text>, </text>
                <reference id="sPt+l16WQkJLiqM+m+B6d5s9eA0=">unreserved_chars</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="operator+" exception-spec="noexcept" id="RPE7nl0nzHl50NxeKWVlHlj0EEc=">
          <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="300" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <return>
            <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars"/>
          </return>
          <param name="cs0">
            <type class="lvalue-reference">
              <pointee-type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="cs1">
            <type class="lvalue-reference">
              <pointee-type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the union of two character sets.</text>
            </brief>
            <para>
              <text>This function returns a new character set which contains all of the characters in </text>
              <mono>cs0</mono>
              <text> as well as all of the characters in </text>
              <mono>cs</mono>
              <text>.</text>
            </para>
            <head>Example</head>
            <para>
              <text>This creates a character set which includes all letters and numbers</text>
            </para>
            <code>
              <text>constexpr lut_chars alpha_chars(
    &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;
    &quot;abcdefghijklmnopqrstuvwxyz&quot;);

constexpr lut_chars alnum_chars = alpha_chars + &quot;0123456789&quot;;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <returns>
              <text>The new character set.</text>
            </returns>
            <param name="cs0">
              <text>A character to join</text>
            </param>
            <param name="cs1">
              <text>A character to join</text>
            </param>
          </doc>
        </function>
        <function name="operator-" exception-spec="noexcept" id="7CUoh11FVhxOsS+h3YMv9zT8QAI=">
          <file short-path="boost/url/grammar/lut_chars.hpp" source-path="include/boost/url/grammar/lut_chars.hpp" line="337" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <return>
            <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars"/>
          </return>
          <param name="cs0">
            <type class="lvalue-reference">
              <pointee-type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="cs1">
            <type class="lvalue-reference">
              <pointee-type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="lut_chars" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return a new character set by subtracting</text>
            </brief>
            <para>
              <text>This function returns a new character set which is formed from all of the characters in </text>
              <mono>cs0</mono>
              <text> which are not in </text>
              <mono>cs</mono>
              <text>.</text>
            </para>
            <head>Example</head>
            <para>
              <text>This statement declares a character set containing all the lowercase letters which are not vowels:</text>
            </para>
            <code>
              <text>constexpr lut_chars consonants = lut_chars(&quot;abcdefghijklmnopqrstuvwxyz&quot;) - &quot;aeiou&quot;;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <returns>
              <text>The new character set.</text>
            </returns>
            <param name="cs0">
              <text>A character set to join.</text>
            </param>
            <param name="cs1">
              <text>A character set to join.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="R" class="type"/>
          <function name="optional_rule" id="f5cvDgg9R+ZZkGkfvf3EI947ciA=">
            <file short-path="boost/url/grammar/optional_rule.hpp" source-path="include/boost/url/grammar/optional_rule.hpp" line="85" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="T56AU5rfLjzDT59R+kMpH1selCY=" name="implementation_defined::optional_rule_t&lt;R&gt;"/>
            </return>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match a rule, or the empty string</text>
              </brief>
              <para>
                <text>Optional BNF elements are denoted with square brackets. If the specified rule returns any error it is treated as if the rule did not match.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = optional&lt; typename Rule::value_type &gt;;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; optional&lt; core::string_view &gt; &gt; rv = parse( &quot;&quot;, optional_rule( token_rule( alpha_chars ) ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>optional     = [ rule ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc5234#section-3.8">3.8.  Optional Sequence (rfc5234)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The adapted rule</text>
              </returns>
              <param name="r">
                <text>The rule to match</text>
              </param>
              <see>
                <reference id="d7YdTQNJGO03J/WSHg33UUwcLdU=">alpha_chars</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="oSAYJle80BcL838BBRX63lch/5Q=">optional</reference>
                <text>, </text>
                <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R" class="type"/>
          <function name="parse" id="LkyR1hrnEFpG2KNxbVyuvzU0r8w=">
            <file short-path="boost/url/grammar/parse.hpp" source-path="include/boost/url/grammar/parse.hpp" line="58"/>
            <return>
              <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;R::value_type&gt;"/>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Parse a character buffer using a rule</text>
              </brief>
              <para>
                <text>This function parses a complete string into the specified sequence of rules. If the string is not completely consumed, an error is returned instead.</text>
              </para>
              <returns>
                <text>The parsed value upon success, otherwise an error.</text>
              </returns>
              <param name="s">
                <text>The input string</text>
              </param>
              <param name="r">
                <text>The rule to use</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R" class="type"/>
          <function name="parse" id="ZudTltmlmk0cOEqWpYLX29Jb3c8=">
            <file short-path="boost/url/grammar/parse.hpp" source-path="include/boost/url/grammar/parse.hpp" line="37"/>
            <return>
              <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;R::value_type&gt;"/>
            </return>
            <param name="it">
              <type class="lvalue-reference">
                <pointee-type class="pointer">
                  <pointee-type name="char" cv-qualifiers="const"/>
                </pointee-type>
              </type>
            </param>
            <param name="end">
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Parse a character buffer using a rule</text>
              </brief>
              <returns>
                <text>The parsed value upon success, otherwise an error.</text>
              </returns>
              <param name="it">
                <text>A pointer to the start. The caller&apos;s variable is changed to reflect the amount of input consumed.</text>
              </param>
              <param name="end">
                <text>A pointer to the end.</text>
              </param>
              <param name="r">
                <text>The rule to use</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R" class="type"/>
          <function name="range_rule" exception-spec="noexcept" id="ANlbUsmeIH4ubuteCfnju8yNgI4=">
            <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="397" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="J8dRb4F9BB1DL+D9Zt9RR+ub9l0=" name="implementation_defined::range_rule_t&lt;R&gt;"/>
            </return>
            <param name="next">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="N" default="0">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <param name="M" default="std::size_t(-1)">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Match a repeating number of elements</text>
              </brief>
              <para>
                <text>Elements are matched using the passed rule. Normally when the rule returns an error, the range ends and the input is rewound to one past the last character that matched successfully. However, if the rule returns the special value </text>
                <reference id="21g3KEjdyvVJs22ysirzt+ZkWDM=">error::end_of_range</reference>
                <text>, the input is not rewound. This allows for rules which consume input without producing elements in the range. For example, to relax the grammar for a comma-delimited list by allowing extra commas in between elements.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = range&lt; typename Rule::value_type &gt;;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>// range    = 1*( &quot;;&quot; token )

system::result&lt; range&lt;core::string_view&gt; &gt; rv = parse( &quot;;alpha;xray;charlie&quot;,
    range_rule(
        tuple_rule(
            squelch( delim_rule( &apos;;&apos; ) ),
            token_rule( alpha_chars ) ),
        1 ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>range        = &lt;N&gt;*&lt;M&gt;next</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc5234#section-3.6">3.6.  Variable Repetition (rfc5234)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A rule that matches the range.</text>
              </returns>
              <param name="next">
                <text>The rule to use for matching each element. The range extends until this rule returns an error.</text>
              </param>
              <param name="N">
                <text>The minimum number of elements for the range to be valid. If omitted, this defaults to zero.</text>
              </param>
              <param name="M">
                <text>The maximum number of elements for the range to be valid. If omitted, this defaults to unlimited.</text>
              </param>
              <see>
                <reference id="d7YdTQNJGO03J/WSHg33UUwcLdU=">alpha_chars</reference>
                <text>, </text>
                <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
                <text>, </text>
                <reference id="21g3KEjdyvVJs22ysirzt+ZkWDM=">error::end_of_range</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="+9pPsGvBtUttdLyyLFPI7ibWjaE=">range</reference>
                <text>, </text>
                <reference id="3dL9L+9O6pMj9teadg4abB/3n2E=">tuple_rule</reference>
                <text>, </text>
                <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R1" class="type"/>
          <tparam name="R2" class="type"/>
          <function name="range_rule" exception-spec="noexcept" requires="! std::is_integral&lt;R2&gt;::value" id="lMrrGMQADkoPtJpJsLxqraXgetg=">
            <file short-path="boost/url/grammar/range_rule.hpp" source-path="include/boost/url/grammar/range_rule.hpp" line="527" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="J8dRb4F9BB1DL+D9Zt9RR+ub9l0=" name="implementation_defined::range_rule_t&lt;R1, R2&gt;"/>
            </return>
            <param name="first">
              <type class="lvalue-reference">
                <pointee-type name="R1" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="next">
              <type class="lvalue-reference">
                <pointee-type name="R2" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="N" default="0">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <param name="M" default="std::size_t(-1)">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Match a repeating number of elements</text>
              </brief>
              <para>
                <text>Two rules are used for match. The rule </text>
                <mono>first</mono>
                <text> is used for matching the first element, while the </text>
                <mono>next</mono>
                <text> rule is used to match every subsequent element. Normally when the rule returns an error, the range ends and the input is rewound to one past the last character that matched successfully. However, if the rule returns the special value </text>
                <reference id="21g3KEjdyvVJs22ysirzt+ZkWDM=">error::end_of_range</reference>
                <text>, the input is not rewound. This allows for rules which consume input without producing elements in the range. For example, to relax the grammar for a comma-delimited list by allowing extra commas in between elements.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = range&lt; typename Rule::value_type &gt;;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>// range    = [ token ] *( &quot;,&quot; token )

system::result&lt; range&lt; core::string_view &gt; &gt; rv = parse( &quot;whiskey,tango,foxtrot&quot;,
    range_rule(
        token_rule( alpha_chars ),          // first
        tuple_rule(                      // next
            squelch( delim_rule(&apos;,&apos;) ),
            token_rule( alpha_chars ) ) ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>range       = &lt;1&gt;*&lt;1&gt;first
            / first &lt;N-1&gt;*&lt;M-1&gt;next</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc5234#section-3.6">3.6.  Variable Repetition (rfc5234)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A rule that matches the range.</text>
              </returns>
              <param name="first">
                <text>The rule to use for matching the first element. If this rule returns an error, the range is empty.</text>
              </param>
              <param name="next">
                <text>The rule to use for matching each subsequent element. The range extends until this rule returns an error.</text>
              </param>
              <param name="N">
                <text>The minimum number of elements for the range to be valid. If omitted, this defaults to zero.</text>
              </param>
              <param name="M">
                <text>The maximum number of elements for the range to be valid. If omitted, this defaults to unlimited.</text>
              </param>
              <see>
                <reference id="d7YdTQNJGO03J/WSHg33UUwcLdU=">alpha_chars</reference>
                <text>, </text>
                <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
                <text>, </text>
                <reference id="21g3KEjdyvVJs22ysirzt+ZkWDM=">error::end_of_range</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="+9pPsGvBtUttdLyyLFPI7ibWjaE=">range</reference>
                <text>, </text>
                <reference id="3dL9L+9O6pMj9teadg4abB/3n2E=">tuple_rule</reference>
                <text>, </text>
                <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="CS" class="type"/>
          <function name="ref" exception-spec="noexcept" requires="is_charset&lt;CS&gt;::value &amp;&amp;
    ! std::is_same&lt;CS,
        implementation_defined::charset_ref&lt;CS&gt; &gt;::value" id="OTRutHAXLI0unuoXlmiiGZhzcGo=">
            <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="255" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="221l+sWJpD23An4Nsc351qg0OBk=" name="implementation_defined::charset_ref&lt;CS&gt;"/>
            </return>
            <param name="cs">
              <type class="lvalue-reference">
                <pointee-type name="CS" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return a reference to a character set</text>
              </brief>
              <para>
                <text>This function returns a character set which references the specified object. This is used to reduce the number of bytes of storage (</text>
                <mono>sizeof</mono>
                <text>) required by a combinator when it stores a copy of the object. Ownership of the object is not transferred; the caller is responsible for ensuring the lifetime of the object is extended until it is no longer referenced. For best results, </text>
                <mono>ref</mono>
                <text> should only be used with compile-time constants.</text>
              </para>
              <returns>
                <text>The character set as a reference type</text>
              </returns>
              <param name="cs">
                <text>The character set to use</text>
              </param>
              <tparam name="CharSet">
                <text>The character set type</text>
              </tparam>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R" class="type"/>
          <function name="ref" exception-spec="noexcept" requires="is_rule&lt;R&gt;::value &amp;&amp;
    ! std::is_same&lt;R,
        implementation_defined::rule_ref&lt;R&gt; &gt;::value" id="zrlEszs2uwvPw940Y7hAgG6UTPI=">
            <file short-path="boost/url/grammar/parse.hpp" source-path="include/boost/url/grammar/parse.hpp" line="103" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="J5kxsYNgICiyE+NSIa2FMMmE+PI=" name="implementation_defined::rule_ref&lt;R&gt;"/>
            </return>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return a reference to a rule</text>
              </brief>
              <para>
                <text>This function returns a rule which references the specified object. This is used to reduce the number of bytes of storage (</text>
                <mono>sizeof</mono>
                <text>) required by a combinator when it stores a copy of the object. Ownership of the object is not transferred; the caller is responsible for ensuring the lifetime of the object is extended until it is no longer referenced. For best results, </text>
                <mono>ref</mono>
                <text> should only be used with compile-time constants.</text>
              </para>
              <returns>
                <text>The rule as a reference type</text>
              </returns>
              <param name="r">
                <text>The rule to use</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R" class="type"/>
          <function name="squelch" exception-spec="noexcept" id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">
            <file short-path="boost/url/grammar/tuple_rule.hpp" source-path="include/boost/url/grammar/tuple_rule.hpp" line="221" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="DhWhEpk9CuLc798VTS0BKCR2OWc=" name="implementation_defined::squelch_rule_t&lt;R&gt;"/>
            </return>
            <param name="r">
              <type class="lvalue-reference">
                <pointee-type name="R" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Squelch the value of a rule</text>
              </brief>
              <para>
                <text>This function returns a new rule which matches the specified rule, and converts its value type to </text>
                <mono>void</mono>
                <text>. This is useful for matching delimiters in a grammar, where the value for the delimiter is not needed.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = void;</text>
              </code>
              <head>Example 1</head>
              <para>
                <text>With </text>
                <mono>squelch</mono>
                <text>:</text>
              </para>
              <code>
                <text>system::result&lt; std::tuple&lt; decode_view, core::string_view &gt; &gt; rv = parse(
    &quot;www.example.com:443&quot;,
    tuple_rule(
        pct_encoded_rule(unreserved_chars + &apos;-&apos; + &apos;.&apos;),
        squelch( delim_rule( &apos;:&apos; ) ),
        token_rule( digit_chars ) ) );</text>
              </code>
              <head>Example 2</head>
              <para>
                <text>Without </text>
                <mono>squelch</mono>
                <text>:</text>
              </para>
              <code>
                <text>system::result&lt; std::tuple&lt; decode_view, core::string_view, core::string_view &gt; &gt; rv = parse(
    &quot;www.example.com:443&quot;,
    tuple_rule(
        pct_encoded_rule(unreserved_chars + &apos;-&apos; + &apos;.&apos;),
        delim_rule( &apos;:&apos; ),
        token_rule( digit_chars ) ) );</text>
              </code>
              <returns>
                <text>The squelched rule</text>
              </returns>
              <param name="r">
                <text>The rule to squelch</text>
              </param>
              <see>
                <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
                <text>, </text>
                <reference id="ookgwXeQg4dQaa4byxIjCl6r61k=">digit_chars</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="3dL9L+9O6pMj9teadg4abB/3n2E=">tuple_rule</reference>
                <text>, </text>
                <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
                <text>, </text>
                <reference id="IhE/V16b2wBX2q+s4QtlgzozWlQ=">decode_view</reference>
                <text>, </text>
                <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
                <text>, </text>
                <reference id="sPt+l16WQkJLiqM+m+B6d5s9eA0=">unreserved_chars</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="to_lower" exception-spec="noexcept" id="uyRz7dsU+AM3TNmwz2kmeP9U+OA=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="53" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <return>
            <type name="char"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return c converted to lowercase</text>
            </brief>
            <para>
              <text>This function returns the character, converting it to lowercase if it is uppercase. The function is defined only for low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( to_lower( &apos;A&apos; ) == &apos;a&apos; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The converted character</text>
            </returns>
            <param name="c">
              <text>The character to convert</text>
            </param>
            <see>
              <reference id="wJ8AXedwlI+rgqL6jyk8IsQ8lzM=">to_upper</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="to_upper" exception-spec="noexcept" id="wJ8AXedwlI+rgqL6jyk8IsQ8lzM=">
          <file short-path="boost/url/grammar/ci_string.hpp" source-path="include/boost/url/grammar/ci_string.hpp" line="83" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <return>
            <type name="char"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return c converted to uppercase</text>
            </brief>
            <para>
              <text>This function returns the character, converting it to uppercase if it is lowercase. The function is defined only for low-ASCII characters.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( to_upper( &apos;a&apos; ) == &apos;A&apos; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The converted character</text>
            </returns>
            <param name="c">
              <text>The character to convert</text>
            </param>
            <see>
              <reference id="uyRz7dsU+AM3TNmwz2kmeP9U+OA=">to_lower</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="CS" class="type"/>
          <function name="token_rule" exception-spec="noexcept" id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">
            <file short-path="boost/url/grammar/token_rule.hpp" source-path="include/boost/url/grammar/token_rule.hpp" line="79" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="m+FYUn7TLf2kNtSNExDzwqrsSB4=" name="implementation_defined::token_rule_t&lt;CS&gt;"/>
            </return>
            <param name="cs">
              <type class="lvalue-reference">
                <pointee-type name="CS" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match a non-empty string of characters from a set</text>
              </brief>
              <para>
                <text>If there is no more input, the error code </text>
                <reference id="a/THTSv6k7njvbh+81BNyu1ppl8=">error::need_more</reference>
                <text> is returned.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = core::string_view;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; core::string_view &gt; rv = parse( &quot;abcdef&quot;, token_rule( alpha_chars ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>token     = 1*( ch )</text>
              </code>
              <returns>
                <text>The token rule</text>
              </returns>
              <param name="cs">
                <text>The character set to use</text>
              </param>
              <see>
                <reference id="d7YdTQNJGO03J/WSHg33UUwcLdU=">alpha_chars</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R0" class="type"/>
          <tparam name="Rn" class="type"/>
          <function name="tuple_rule" exception-spec="noexcept" id="3dL9L+9O6pMj9teadg4abB/3n2E=">
            <file short-path="boost/url/grammar/tuple_rule.hpp" source-path="include/boost/url/grammar/tuple_rule.hpp" line="124" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="nWoWNVw77zLQ6OOna6+pGGaTIdo=" name="implementation_defined::tuple_rule_t&lt;R0, Rn...&gt;"/>
            </return>
            <param name="r0">
              <type class="lvalue-reference">
                <pointee-type name="R0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="rn">
              <type class="lvalue-reference" is-pack="1">
                <pointee-type is-pack="1" name="Rn" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match a series of rules in order</text>
              </brief>
              <para>
                <text>This matches a series of rules in the order specified. Upon success the input is adjusted to point to the first unconsumed character. There is no implicit specification of linear white space between each rule.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = __see_below__;</text>
              </code>
              <para>
                <text>The sequence rule usually returns a </text>
                <mono>std::tuple</mono>
                <text> containing the the </text>
                <mono>value_type</mono>
                <text> of each corresponding rule in the sequence, except that </text>
                <mono>void</mono>
                <text> values are removed. However, if there is exactly one non-void value type </text>
                <mono>T</mono>
                <text>, then the sequence rule returns </text>
                <mono>system::result&lt;T&gt;</mono>
                <text> instead of </text>
                <mono>system::result&lt;tuple&lt;...&gt;&gt;</mono>
                <text>.</text>
              </para>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>system::result&lt; std::tuple&lt; unsigned char, unsigned char, unsigned char, unsigned char &gt; &gt; rv =
    parse( &quot;192.168.0.1&quot;,
        tuple_rule(
            dec_octet_rule,
            squelch( delim_rule(&apos;.&apos;) ),
            dec_octet_rule,
            squelch( delim_rule(&apos;.&apos;) ),
            dec_octet_rule,
            squelch( delim_rule(&apos;.&apos;) ),
            dec_octet_rule ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>sequence     = rule1 rule2 rule3...</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc5234#section-3.1">3.1.  Concatenation (rfc5234)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The sequence rule</text>
              </returns>
              <param name="r0">
                <text>The first rule to match</text>
              </param>
              <param name="rn">
                <text>A list of one or more rules to match</text>
              </param>
              <see>
                <reference id="wGQE3O3P2kijozE1QPKz8pdNszQ=">dec_octet_rule</reference>
                <text>, </text>
                <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="SqrTdaO1Y5GdnwvZBirZfRUnteI=">squelch</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="R0" class="type"/>
          <tparam name="Rn" class="type"/>
          <function name="variant_rule" exception-spec="noexcept" id="nvXVohM9V8Y+LBy840FJ5xMZrOM=">
            <file short-path="boost/url/grammar/variant_rule.hpp" source-path="include/boost/url/grammar/variant_rule.hpp" line="105"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <return>
              <type id="h8EW/tdUnEu5iJrF1YVO3fGWKNg=" name="implementation_defined::variant_rule_t&lt;R0, Rn...&gt;"/>
            </return>
            <param name="r0">
              <type class="lvalue-reference">
                <pointee-type name="R0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="rn">
              <type class="lvalue-reference" is-pack="1">
                <pointee-type is-pack="1" name="Rn" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Match one of a set of rules</text>
              </brief>
              <para>
                <text>Each specified rule is tried in sequence. When the first match occurs, the result is stored and returned in the variant. If no match occurs, an error is returned.</text>
              </para>
              <head>Value Type</head>
              <code>
                <text>using value_type = variant&lt; typename Rules::value_type... &gt;;</text>
              </code>
              <head>Example</head>
              <para>
                <text>Rules are used with the function </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>.</text>
              </para>
              <code>
                <text>// request-target = origin-form
//                / absolute-form
//                / authority-form
//                / asterisk-form

system::result&lt; variant&lt; url_view, url_view, authority_view, core::string_view &gt; &gt; rv = grammar::parse(
    &quot;/index.html?width=full&quot;,
    variant_rule(
        origin_form_rule,
        absolute_uri_rule,
        authority_rule,
        delim_rule(&apos;*&apos;) ) );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>variant     = rule1 / rule2 / rule3...</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc5234#section-3.2">3.2.  Alternatives (rfc5234)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc7230#section-5.3">5.3.  Request Target (rfc7230)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The variant rule</text>
              </returns>
              <param name="r0">
                <text>The first rule to match</text>
              </param>
              <param name="rn">
                <text>A list of one or more rules to match</text>
              </param>
              <see>
                <reference id="4SGJz+AJ+UhdwU8wP3Xh11mlvBM=">absolute_uri_rule</reference>
                <text>, </text>
                <reference id="kWc6VwnEqWA0KYFMRYavAgCCB4M=">authority_rule</reference>
                <text>, </text>
                <reference id="qF6kM++zYvuIkL97v/RpKnwOR10=">delim_rule</reference>
                <text>, </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="nz+wKEzMLKgYPZA/4y/jAJmzf6I=">origin_form_rule</reference>
                <text>, </text>
                <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="operator&lt;&lt;" id="SkM0CJxXlY5Qrb/AJ8U97iXJxcc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1112"/>
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1124"/>
          <attr id="operator" name="lshift" value="23"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
            </type>
          </return>
          <param name="os">
            <type class="lvalue-reference">
              <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
            </type>
          </param>
          <param name="s">
            <type class="lvalue-reference">
              <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Format a string to an output stream</text>
            </brief>
            <para>
              <text>Format a string to an output stream</text>
            </para>
            <returns>
              <text>A reference to the output stream, for chaining</text>
            </returns>
            <param name="os">
              <text>The output stream to write to</text>
            </param>
            <param name="s">
              <text>The string to write</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator==" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="V8wTrpMKuyusSnj0DQUMT3AGjEM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="998" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="eq" value="28"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for equality</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the strings are equal, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator!=" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="+pTwj7vLxN5lirAmjjLZFLgcAIM=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1017" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="not_eq" value="29"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for inequality</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the strings are not equal, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator&lt;" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="L/ezmiWj+8oAMQBf/H3xY12Tens=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1036" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="lt" value="30"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for less than</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the first string is less than the second, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator&lt;=" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="gNMERW7vBJ5oy0+D5SHS3lJwELE=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1055" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="le" value="31"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for less than or equal</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the first string is less than or equal to the second, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator&gt;" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="dQbW0x0SHjC6bYCIyGZgDYxSPEc=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1074" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="gt" value="32"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for greater than</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the first string is greater than the second, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="S0" class="type"/>
          <tparam name="S1" class="type"/>
          <function name="operator&gt;=" exception-spec="noexcept" requires="is_match&lt;S0, S1&gt;::value" id="evQmFIytUm7bsb+yuZJVfaz3lp4=">
            <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="1093" class="def"/>
            <attr id="has-trailing-return"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="ge" value="33"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="s0">
              <type class="lvalue-reference">
                <pointee-type name="S0" cv-qualifiers="const"/>
              </type>
            </param>
            <param name="s1">
              <type class="lvalue-reference">
                <pointee-type name="S1" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Compare two string views for greater than or equal</text>
              </brief>
              <para>
                <text>This function is only enabled if both arguments are convertible to </text>
                <mono>core::string_view</mono>
                <text> and at least one of the arguments is derived from </text>
                <mono>string_view_base</mono>
                <text>.</text>
              </para>
              <returns>
                <mono>true</mono>
                <text> if the first string is greater than or equal to the second, otherwise </text>
                <mono>false</mono>
              </returns>
              <param name="s0">
                <text>The first string</text>
              </param>
              <param name="s1">
                <text>The second string</text>
              </param>
            </doc>
          </function>
        </template>
        <variable name="all_chars" id="XQO24StkYHcztVq6ahPu5A0nO2I=" default="all_chars{}">
          <file short-path="boost/url/grammar/all_chars.hpp" source-path="include/boost/url/grammar/all_chars.hpp" line="75" class="def"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="nRXavJqZzPf3zVFXWgsPc/IdjN8=" name="implementation_defined::all_chars_t"/>
          <doc>
            <brief>
              <text>The set of all characters</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;JohnDoe&quot;, token_rule( all_chars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>ALL       = %x00-FF</text>
            </code>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="alnum_chars" id="KtYcXkgaXTfO7spDy/S3Zqu5+DQ=" default="{}">
          <file short-path="boost/url/grammar/alnum_chars.hpp" source-path="include/boost/url/grammar/alnum_chars.hpp" line="84" class="def"/>
          <attr id="is-constexpr"/>
          <type id="PecAmXu5iFbTP95XO6HABBapM0M=" name="implementation_defined::alnum_chars_t"/>
          <doc>
            <brief>
              <text>The set of letters and digits</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; = parse( &quot;Johnny42&quot;, token_rule( alnumchars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>ALNUM       = ALPHA / DIGIT

ALPHA       = %x41-5A / %x61-7A
            ; A-Z / a-z

DIGIT       = %x30-39
            ; 0-9</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1">B.1. Core Rules (rfc5234)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="alpha_chars" id="d7YdTQNJGO03J/WSHg33UUwcLdU=" default="alpha_chars{}">
          <file short-path="boost/url/grammar/alpha_chars.hpp" source-path="include/boost/url/grammar/alpha_chars.hpp" line="81" class="def"/>
          <attr id="is-constexpr"/>
          <type id="aZ8NmGk2LhJ7q/tOUwi0dMSLAPY=" name="implementation_defined::alpha_chars_t"/>
          <doc>
            <brief>
              <text>The set of all letters</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;JohnDoe&quot;, token_rule( alpha_chars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>ALPHA       = %x41-5A / %x61-7A
            ; A-Z / a-z</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1">B.1. Core Rules (rfc5234)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="dec_octet_rule" id="wGQE3O3P2kijozE1QPKz8pdNszQ=" default="{}">
          <file short-path="boost/url/grammar/dec_octet_rule.hpp" source-path="include/boost/url/grammar/dec_octet_rule.hpp" line="67" class="def"/>
          <attr id="is-constexpr"/>
          <type id="HxXn4S3XY1ehyjJnmQaLixjJWW4=" name="implementation_defined::dec_octet_rule_t"/>
          <doc>
            <brief>
              <text>Match a decimal octet</text>
            </brief>
            <para>
              <text>A decimal octet is precise way of saying a number from 0 to 255. These are commonly used in IPv4 addresses.</text>
            </para>
            <head>Value Type</head>
            <code>
              <text>using value_type = unsigned char;</text>
            </code>
            <head>Example</head>
            <para>
              <text>Rules are used with the function </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; unsigned char &gt; rv = parse( &quot;255&quot;, dec_octet_rule );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="digit_chars" id="ookgwXeQg4dQaa4byxIjCl6r61k=" default="{}">
          <file short-path="boost/url/grammar/digit_chars.hpp" source-path="include/boost/url/grammar/digit_chars.hpp" line="76" class="def"/>
          <attr id="is-constexpr"/>
          <type id="RzrXifCkxfQaJRtdGmnkdmkNNCk=" name="implementation_defined::digit_chars_t"/>
          <doc>
            <brief>
              <text>The set of decimal digits</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;2022&quot;, token_rule( digit_chars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>DIGIT       = %x30-39
            ; 0-9</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1">B.1. Core Rules (rfc5234)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="hexdig_chars" id="DL6gFomghn24jmaE6CBpvXe7C6k=" default="{}">
          <file short-path="boost/url/grammar/hexdig_chars.hpp" source-path="include/boost/url/grammar/hexdig_chars.hpp" line="97" class="def"/>
          <attr id="is-constexpr"/>
          <type id="thD44DGIe9GW1wf4LsqenuROJj0=" name="implementation_defined::hexdig_chars_t"/>
          <doc>
            <brief>
              <text>The set of hexadecimal digits</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;8086FC19&quot;, token_rule( hexdig_chars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>HEXDIG      = DIGIT
            / &quot;A&quot; / &quot;B&quot; / &quot;C&quot; / &quot;D&quot; / &quot;E&quot; / &quot;F&quot;
            / &quot;a&quot; / &quot;b&quot; / &quot;c&quot; / &quot;d&quot; / &quot;e&quot; / &quot;f&quot;</text>
            </code>
            <para class="note">
              <text>The RFCs are inconsistent on the case sensitivity of hexadecimal digits. Existing uses suggest case-insensitivity is a de-facto standard.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1">B.1. Core Rules (rfc5234)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc7230#section-1.2">1.2. Syntax Notation (rfc7230)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5952#section-2.3">2.3. Uppercase or Lowercase (rfc5952)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5952#section-4.3">4.3. Lowercase (rfc5952)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="Euqnbrbiv6WcHygsjJQdaZ1rnhg=">hexdig_value</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <variable name="vchars" id="5EAOeMjGjcl9HrYrkUHpxzX2ZpM=" default="{}">
          <file short-path="boost/url/grammar/vchars.hpp" source-path="include/boost/url/grammar/vchars.hpp" line="76" class="def"/>
          <attr id="is-constexpr"/>
          <type id="3dzyJ9uJweYXT1VXLoYXSVyuPqg=" name="implementation_defined::vchars_t"/>
          <doc>
            <brief>
              <text>The set of visible characters</text>
            </brief>
            <head>Example</head>
            <para>
              <text>Character sets are used with rules and the functions </text>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text> and </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>.</text>
            </para>
            <code>
              <text>system::result&lt; core::string_view &gt; rv = parse( &quot;JohnDoe&quot;, token_rule( vchars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>VCHAR       = 0x21-0x7E
            ; visible (printing) characters</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1">B.1. Core Rules (rfc5234)</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
              <text>, </text>
              <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
              <text>, </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
              <text>, </text>
              <reference id="iGgGf2BXynEIj/9+UbOB6VpcqwM=">token_rule</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
        <template>
          <tparam name="T" class="type"/>
          <concept name="CharSet" id="FxMSGnhcpF1/OxJmfRXaS2a37Bo=" constraint="requires (T const t, char c)
{
    { t(c) } -&gt; std::convertible_to&lt;bool&gt;;
}">
            <file short-path="boost/url/grammar/charset.hpp" source-path="include/boost/url/grammar/charset.hpp" line="114"/>
            <doc>
              <brief>
                <text>Concept for a CharSet</text>
              </brief>
              <para>
                <text>A </text>
                <mono>CharSet</mono>
                <text> is a unary predicate which is invocable with this equivalent signature:</text>
              </para>
              <code>
                <text>bool( char ch ) const noexcept;</text>
              </code>
              <para>
                <text>The predicate returns </text>
                <mono>true</mono>
                <text> if </text>
                <mono>ch</mono>
                <text> is a member of the set, or </text>
                <mono>false</mono>
                <text> otherwise.</text>
              </para>
              <head>Exemplar</head>
              <para>
                <text>For best results, it is suggested that all constructors and member functions for character sets be marked </text>
                <mono>constexpr</mono>
                <text>.</text>
              </para>
              <code>
                <text>struct CharSet
{
    bool operator()( char c ) const noexcept;

    // These are both optional. If either or both are left
    // unspecified, a default implementation will be used.
    //
    char const* find_if( char const* first, char const* last ) const noexcept;
    char const* find_if_not( char const* first, char const* last ) const noexcept;
};</text>
              </code>
              <head>Models</head>
              <unorderedlist>
                <listitem>
                  <reference>alnum_chars</reference>
                </listitem>
                <listitem>
                  <reference>alpha_chars</reference>
                </listitem>
                <listitem>
                  <reference>digit_chars</reference>
                </listitem>
                <listitem>
                  <reference>hexdig_chars</reference>
                </listitem>
                <listitem>
                  <reference>lut_chars</reference>
                </listitem>
              </unorderedlist>
              <see>
                <reference id="0GCmQo0daSi2/pqQuIRhYWbW6lk=">is_charset</reference>
                <text>, </text>
                <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">find_if</reference>
                <text>, </text>
                <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">find_if_not</reference>
                <text>.</text>
              </see>
            </doc>
          </concept>
        </template>
        <template>
          <tparam name="T" class="type"/>
          <concept name="Rule" id="cRU3xcDmjFTdAqKX4QDnvPvWuIU=" constraint="requires (T t, char const*&amp; it, char const* end)
    {
        typename T::value_type;
        { t.parse(it, end) } -&gt; std::same_as&lt;system::result&lt;typename T::value_type&gt;&gt;;
    }">
            <file short-path="boost/url/grammar/type_traits.hpp" source-path="include/boost/url/grammar/type_traits.hpp" line="119"/>
            <doc>
              <brief>
                <text>Concept for a grammar Rule</text>
              </brief>
              <para>
                <text>This concept is satisfied if </text>
                <mono>T</mono>
                <text> is a valid grammar Rule</text>
              </para>
              <para>
                <text>A </text>
                <mono>Rule</mono>
                <text> defines an algorithm used to match an input buffer of ASCII characters against a set of syntactical specifications.</text>
              </para>
              <para>
                <text>Each rule represents either a terminal symbol or a composition in the represented grammar.</text>
              </para>
              <para>
                <text>The library comes with a set of rules for productions typically found in RFC documents. Rules are not invoked directly; instead, rule variables are used with overloads of </text>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text> which provide a convenient, uniform front end.</text>
              </para>
              <head>Exemplar</head>
              <para>
                <text>For best results, it is suggested that all constructors for rules be marked </text>
                <mono>constexpr</mono>
                <text>.</text>
              </para>
              <code>
                <text>struct Rule
{
    struct value_type;

    constexpr Rule( Rule const&amp; ) noexcept = default;

    auto parse( char const*&amp; it, char const* end ) const -&gt; result&lt; value_type &gt;;
};

// Declare a variable of type Rule for notational convenience
constexpr Rule rule{};</text>
              </code>
              <head>Model</head>
              <unorderedlist>
                <listitem>
                  <reference>dec_octet_rule</reference>
                </listitem>
                <listitem>
                  <reference>delim_rule</reference>
                </listitem>
                <listitem>
                  <reference>not_empty_rule</reference>
                </listitem>
                <listitem>
                  <reference>optional_rule</reference>
                </listitem>
                <listitem>
                  <reference>range_rule</reference>
                </listitem>
                <listitem>
                  <reference>token_rule</reference>
                </listitem>
                <listitem>
                  <reference>tuple_rule</reference>
                </listitem>
                <listitem>
                  <reference>unsigned_rule</reference>
                </listitem>
                <listitem>
                  <reference>variant_rule</reference>
                </listitem>
              </unorderedlist>
              <see>
                <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">parse</reference>
                <text>, </text>
                <reference id="Lqb+A8s0WInDfI5fYlmrSx9QEaU=">is_rule</reference>
                <text>.</text>
              </see>
            </doc>
          </concept>
        </template>
      </namespace>
      <namespace name="implementation_defined" id="xCd2tUlylXT9zvj8ZcHXybU4P/k=">
        <struct name="absolute_uri_rule_t" id="ULWu8e+1y5m/ZQncGkLNDTIjCng=">
          <file short-path="boost/url/rfc/absolute_uri_rule.hpp" source-path="include/boost/url/rfc/absolute_uri_rule.hpp" line="21" class="def"/>
        </struct>
        <struct name="authority_rule_t" id="K+GE1hzkSGKOq3ThCLWBwd5DTuE=">
          <file short-path="boost/url/rfc/authority_rule.hpp" source-path="include/boost/url/rfc/authority_rule.hpp" line="20" class="def"/>
        </struct>
        <struct name="ignore_case_t" id="X8bO9PzAZhZe4KoaCSz4/o1kias=">
          <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="19" class="def"/>
        </struct>
        <struct name="ipv4_address_rule_t" id="oNcW0Zh+zvzi9SUKiAhcndAKBL0=">
          <file short-path="boost/url/rfc/ipv4_address_rule.hpp" source-path="include/boost/url/rfc/ipv4_address_rule.hpp" line="20" class="def"/>
        </struct>
        <struct name="ipv6_address_rule_t" id="A26koPySRJKlDatdXQouZa07zD4=">
          <file short-path="boost/url/rfc/ipv6_address_rule.hpp" source-path="include/boost/url/rfc/ipv6_address_rule.hpp" line="20" class="def"/>
        </struct>
        <struct name="origin_form_rule_t" id="A87uUMvaeqqseND6B+bppJkjKco=">
          <file short-path="boost/url/rfc/origin_form_rule.hpp" source-path="include/boost/url/rfc/origin_form_rule.hpp" line="20" class="def"/>
        </struct>
        <template>
          <tparam name="CharSet" class="type"/>
          <struct name="pct_encoded_rule_t" id="CQTpJwwMukasfaQaxylb5piRLpU=">
            <file short-path="boost/url/rfc/pct_encoded_rule.hpp" source-path="include/boost/url/rfc/pct_encoded_rule.hpp" line="21" class="def"/>
          </struct>
        </template>
        <struct name="query_rule_t" id="6BnTFtZi8y58Qk6SU1LtvEpeCy0=">
          <file short-path="boost/url/rfc/query_rule.hpp" source-path="include/boost/url/rfc/query_rule.hpp" line="21" class="def"/>
        </struct>
        <struct name="relative_ref_rule_t" id="tojwBud9+1o/12apbTevwuH6eng=">
          <file short-path="boost/url/rfc/relative_ref_rule.hpp" source-path="include/boost/url/rfc/relative_ref_rule.hpp" line="20" class="def"/>
        </struct>
        <struct name="uri_reference_rule_t" id="Xicirg+nwaf6LsTkCuUaRNAJdRU=">
          <file short-path="boost/url/rfc/uri_reference_rule.hpp" source-path="include/boost/url/rfc/uri_reference_rule.hpp" line="20" class="def"/>
        </struct>
        <struct name="uri_rule_t" id="HtzG2IcqWtOoDM4HjT7YflVbDwI=">
          <file short-path="boost/url/rfc/uri_rule.hpp" source-path="include/boost/url/rfc/uri_rule.hpp" line="20" class="def"/>
        </struct>
      </namespace>
      <namespace name="string_token" id="MOmWJXtSzgLTSr4XFeqs4WKGaYg=">
        <namespace name="implementation_defined" id="O+lYzaE50zG6Wg5LleV++3OOUEs=">
          <template>
            <tparam name="Alloc" class="type"/>
            <struct name="append_to_t" id="qk3wRWnqc04moCliBfKp16M/BmI=">
              <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="282" class="def"/>
              <base>
                <type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="Alloc" class="type"/>
            <struct name="assign_to_t" id="p1tCSXxSDvT3AW53bCFq0imv3FM=">
              <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="348" class="def"/>
              <base>
                <type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="T" class="type"/>
            <tparam class="type" default="void"/>
            <struct name="is_token" id="iH1VM9nUmajjxJ8dOC2jkBlhtEk=">
              <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="97" class="def"/>
              <base>
                <type id="z3uoRT/4JBF1PRGgtCqSzue/zqY=" name="std::false_type"/>
              </base>
            </struct>
          </template>
          <template>
            <tparam name="Alloc" class="type"/>
            <struct name="preserve_size_t" id="vVkR3dwQYI3GG+xXTTanjEx0N8E=">
              <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="411" class="def"/>
              <base>
                <type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </base>
            </struct>
          </template>
          <struct name="return_string" id="nV2aMdRFK2/efNzMlYylkOQ9NaA=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="245" class="def"/>
            <base>
              <type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
            </base>
          </struct>
        </namespace>
        <template>
          <tparam name="T" class="type"/>
          <namespace-alias name="is_token" id="tg/ApK6TM6XpySJns5Q9zB1S60E=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="130"/>
            <type id="iH1VM9nUmajjxJ8dOC2jkBlhtEk=" name="implementation_defined::is_token&lt;T&gt;"/>
            <doc>
              <brief>
                <text>Trait to determine if a type is a string token</text>
              </brief>
              <para>
                <text>This trait returns </text>
                <mono>true</mono>
                <text> if </text>
                <mono>T</mono>
                <text> is a valid </text>
                <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
                <text> type, and </text>
                <mono>false</mono>
                <text> otherwise.</text>
              </para>
              <head>Example</head>
              <code>
                <text>static_assert( string_token::is_token&lt;T&gt;::value );</text>
              </code>
            </doc>
          </namespace-alias>
        </template>
        <namespace-alias name="return_string" id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">
          <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="277"/>
          <type id="nV2aMdRFK2/efNzMlYylkOQ9NaA=" name="implementation_defined::return_string"/>
          <doc>
            <brief>
              <text>A string token for returning a plain string</text>
            </brief>
            <para>
              <text>This </text>
              <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
              <text> is used to customize a function to return a plain string.</text>
            </para>
            <para>
              <text>This is default token type used by the methods of </text>
              <reference id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">url_view_base</reference>
              <text> that return decoded strings.</text>
            </para>
          </doc>
        </namespace-alias>
        <struct name="arg" id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=">
          <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="51" class="def"/>
          <doc>
            <brief>
              <text>Base class for string tokens, and algorithm parameters</text>
            </brief>
            <para>
              <text>This abstract interface provides a means for an algorithm to generically obtain a modifiable, contiguous character buffer of prescribed size.</text>
            </para>
            <para>
              <text>A </text>
              <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
              <text> should be derived from this class. As the author of an algorithm using a </text>
              <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
              <text>, simply declare an rvalue reference as a parameter type.</text>
            </para>
            <para>
              <text>Instances of this type are intended only to be used once and then destroyed.</text>
            </para>
            <head>Example</head>
            <para>
              <text>The declared function accepts any temporary instance of </text>
              <mono>arg</mono>
              <text> to be used for writing:</text>
            </para>
            <code>
              <text>void algorithm( string_token::arg&amp;&amp; dest );</text>
            </code>
            <para>
              <text>To implement the interface for your type or use-case, derive from the class and implement the prepare function.</text>
            </para>
          </doc>
          <function class="constructor" name="arg" id="Eqc3G+vU4onpogKjNx2FnzVWVRY=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="79" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <doc>
              <brief>
                <text>Default constructor</text>
              </brief>
            </doc>
          </function>
          <function class="constructor" name="arg" id="UWs4u9jWkIa48I4XPUfUExqrKaY=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="85" class="def"/>
            <attr id="is-deleted"/>
            <attr id="is-deleted-as-written"/>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Deleted copy constructor</text>
              </brief>
              <param name="other">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
          <function class="constructor" name="arg" id="z4BOjAdOsfR07Q4W2YMFvpLJp64=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="82" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="other">
              <type class="rvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Default move constructor</text>
              </brief>
              <param name="other">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
          <function class="destructor" name="~arg" id="zSRqibM9SncGIoNN6BiVsHpXjRE=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="76" class="def"/>
            <attr id="is-virtual-as-written"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <doc>
              <brief>
                <text>Virtual destructor</text>
              </brief>
            </doc>
          </function>
          <function name="operator=" id="FW5efXSRGX7IqtbPH7xSoVbGoZo=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="91" class="def"/>
            <attr id="is-deleted"/>
            <attr id="is-deleted-as-written"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Deleted copy assignment</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The object to copy assign from</text>
              </param>
            </doc>
          </function>
          <function name="operator=" id="8yIy2NSmgVSsLpNu9up2hjpSZJA=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="88" class="def"/>
            <attr id="is-deleted"/>
            <attr id="is-deleted-as-written"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </type>
            </return>
            <param name="other">
              <type class="rvalue-reference">
                <pointee-type id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=" name="arg"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Deleted move assignment</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The object to move assign from</text>
              </param>
            </doc>
          </function>
          <function name="prepare" id="xQSGtCyEyObIGl1DVrkpHN8POo8=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="73"/>
            <attr id="is-virtual-as-written"/>
            <attr id="is-pure"/>
            <return>
              <type class="pointer">
                <pointee-type name="char"/>
              </type>
            </return>
            <param name="n">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Return a modifiable character buffer</text>
              </brief>
              <para>
                <text>This function attempts to obtain a character buffer with space for at least </text>
                <mono>n</mono>
                <text> characters. Upon success, a pointer to the beginning of the buffer is returned. Ownership is not transferred; the caller should not attempt to free the storage. The buffer shall remain valid until </text>
                <mono>this</mono>
                <text> is destroyed.</text>
              </para>
              <para class="note">
                <text>This function may only be called once. After invoking the function, the only valid operation is destruction.</text>
              </para>
              <returns>
                <text>A pointer to the buffer</text>
              </returns>
              <param name="n">
                <text>The number of characters needed</text>
              </param>
            </doc>
          </function>
        </struct>
        <template>
          <tparam name="Alloc" class="type" default="std::allocator&lt;char&gt;"/>
          <function name="append_to" id="TAGINR0RKAfQuoMnH+IPpYeDTA0=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="332" class="def"/>
            <return>
              <type id="qk3wRWnqc04moCliBfKp16M/BmI=" name="implementation_defined::append_to_t&lt;Alloc&gt;"/>
            </return>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type id="r61gWWJQXVvUDaDXNgmBghOfg/s=" name="std::basic_string&lt;char, std::char_traits&lt;char&gt;, Alloc&gt;"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Create a string token for appending to a plain string</text>
              </brief>
              <para>
                <text>This function creates a </text>
                <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
                <text> which appends to an existing plain string.</text>
              </para>
              <para>
                <text>Functions using this token will append the result to the existing string and return a reference to it.</text>
              </para>
              <returns>
                <text>A string token</text>
              </returns>
              <param name="s">
                <text>The string to append</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="Alloc" class="type" default="std::allocator&lt;char&gt;"/>
          <function name="assign_to" id="zj/vQ0ghWaEsVYrsOTFAczfd75I=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="395" class="def"/>
            <return>
              <type id="p1tCSXxSDvT3AW53bCFq0imv3FM=" name="implementation_defined::assign_to_t&lt;Alloc&gt;"/>
            </return>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type id="r61gWWJQXVvUDaDXNgmBghOfg/s=" name="std::basic_string&lt;char, std::char_traits&lt;char&gt;, Alloc&gt;"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Create a string token for assigning to a plain string</text>
              </brief>
              <para>
                <text>This function creates a </text>
                <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
                <text> which assigns to an existing plain string.</text>
              </para>
              <para>
                <text>Functions using this token will assign the result to the existing string and return a reference to it.</text>
              </para>
              <returns>
                <text>A string token</text>
              </returns>
              <param name="s">
                <text>The string to assign</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="Alloc" class="type" default="std::allocator&lt;char&gt;"/>
          <function name="preserve_size" id="dhTGe39K0hWLI6/L1JWoXeA3RaM=">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="464" class="def"/>
            <return>
              <type id="vVkR3dwQYI3GG+xXTTanjEx0N8E=" name="implementation_defined::preserve_size_t&lt;Alloc&gt;"/>
            </return>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type id="r61gWWJQXVvUDaDXNgmBghOfg/s=" name="std::basic_string&lt;char, std::char_traits&lt;char&gt;, Alloc&gt;"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Create a string token for a durable core::string_view</text>
              </brief>
              <para>
                <text>This function creates a </text>
                <reference id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=">StringToken</reference>
                <text> which assigns to an existing plain string.</text>
              </para>
              <para>
                <text>Functions using this token will assign the result to the existing string and return a </text>
                <mono>core::string_view</mono>
                <text> to it.</text>
              </para>
              <returns>
                <text>A string token</text>
              </returns>
              <param name="s">
                <text>The string to preserve</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="T" class="type"/>
          <concept name="StringToken" id="fM86dXw+ZpKZYpM3FEPTWTfxPrg=" constraint="std::derived_from&lt;T, string_token::arg&gt; &amp;&amp;
    requires (T t, std::size_t n)
{
    typename T::result_type;
    { t.prepare(n) } -&gt; std::same_as&lt;char*&gt;;
    { t.result() } -&gt; std::convertible_to&lt;typename T::result_type&gt;;
}">
            <file short-path="boost/url/grammar/string_token.hpp" source-path="include/boost/url/grammar/string_token.hpp" line="231"/>
            <doc>
              <brief>
                <text>Concept for a string token</text>
              </brief>
              <para>
                <text>This concept is satisfied if </text>
                <mono>T</mono>
                <text> is a valid string token type.</text>
              </para>
              <para>
                <text>A string token is an rvalue passed to a function template which customizes the return type of the function and also controls how a modifiable character buffer is obtained and presented.</text>
              </para>
              <para>
                <text>The string token&apos;s lifetime extends only for the duration of the function call in which it appears as a parameter.</text>
              </para>
              <para>
                <text>A string token cannot be copied, moved, or assigned, and must be destroyed when the function returns or throws.</text>
              </para>
              <head>Semantics</head>
              <para>
                <mono>T::result_type</mono>
                <text> determines the return type of functions that accept a string token.</text>
              </para>
              <para>
                <text>The </text>
                <mono>prepare()</mono>
                <text> function overrides the virtual function in the base class </text>
                <reference id="/Ms5TE7Usr0vyzWIpbiWwwjHmsQ=">arg</reference>
                <text>. It must return a pointer to a character buffer of at least size </text>
                <mono>n</mono>
                <text>, otherwise throw an exception. This function is called only once or not at all.</text>
              </para>
              <para>
                <text>The </text>
                <mono>result()</mono>
                <text> function is invoked by the algorithm to receive the result from the string token. It is only invoked if </text>
                <mono>prepare()</mono>
                <text> returned successfully and the string token was not destroyed. It is only called after </text>
                <mono>prepare()</mono>
                <text> returns successfully, and the string token is destroyed when the algorithm completes or if an exception is thrown.</text>
              </para>
              <para>
                <text>String tokens cannot be reused.</text>
              </para>
              <head>Exemplars</head>
              <para>
                <text>String token prototype:</text>
              </para>
              <code>
                <text>struct StringToken : string_token::arg
{
    using result_type = std::string;

    char* prepare( std::size_t n ) override;

    result_type result();
};</text>
              </code>
              <para>
                <text>Algorithm prototype:</text>
              </para>
              <code>
                <text>namespace detail {

// Algorithm implementation may be placed
// out of line, and written as an ordinary
// function (no template required).
void algorithm_impl( string_token::arg&amp; token )
{
    std::size_t n = 0;

    // calculate space needed in n
    // ...

    // acquire a destination buffer
    char* dest = token.prepare( n );

    // write the characters to the buffer
}
} // detail

// public interface is a function template,
// defaulting to return std::string.
template&lt; class StringToken = string_token::return_string &gt;
auto
algorithm( StringToken&amp;&amp; token = {} ) -&gt;
    typename StringToken::result_type
{
    // invoke the algorithm with the token
    algorithm_impl( token );

    // return the result from the token
    return token.result();
}</text>
              </code>
              <head>Models</head>
              <para>
                <text>The following classes and functions implement and generate string tokens.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <reference>return_string</reference>
                </listitem>
                <listitem>
                  <reference>assign_to</reference>
                </listitem>
                <listitem>
                  <reference>preserve_size</reference>
                </listitem>
              </unorderedlist>
            </doc>
          </concept>
        </template>
      </namespace>
      <namespace-alias name="format_arg" id="SSBC59C6XUs+gwNHiw2EV5oj4Pg=">
        <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="72"/>
        <type id="/zMrc2EfowBhSEHWufUSB6T3OeI=" name="detail::format_arg"/>
        <doc>
          <brief>
            <text>A temporary reference to a formatting argument</text>
          </brief>
          <para>
            <text>This class represents a temporary reference to a formatting argument used by the </text>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text> function.</text>
          </para>
          <para>
            <text>A </text>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text> argument should always be created by passing the argument to be formatted directly to the </text>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text> function.</text>
          </para>
          <para>
            <text>Any type that can be formatted into a URL with the </text>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text> function is convertible to this type.</text>
          </para>
          <para>
            <text>This includes basic types, types convertible to </text>
            <mono>core::string_view</mono>
            <text>, and </text>
            <reference id="HO2ZXp4PSbe153fApaGEDkq0ks0=">named_arg</reference>
            <text>.</text>
          </para>
          <see>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text>, </text>
            <reference id="FNXbTBfIxbiM2pjYEryMCZH+yoY=">format_to</reference>
            <text>, </text>
            <reference id="IQym8fO7DIG67s+M2rtFQszkoaY=">arg</reference>
            <text>.</text>
          </see>
        </doc>
      </namespace-alias>
      <template>
        <tparam name="T" class="type"/>
        <namespace-alias name="named_arg" id="HO2ZXp4PSbe153fApaGEDkq0ks0=">
          <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="47"/>
          <type id="81sFU1ap8/xDfdip9jIZTHzrnZc=" name="detail::named_arg&lt;T&gt;"/>
          <doc>
            <brief>
              <text>A temporary reference to a named formatting argument</text>
            </brief>
            <para>
              <text>This class represents a temporary reference to a named formatting argument used by the </text>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text> function.</text>
            </para>
            <para>
              <text>Named arguments should always be created with the </text>
              <reference id="IQym8fO7DIG67s+M2rtFQszkoaY=">arg</reference>
              <text> function.</text>
            </para>
            <para>
              <text>Any type that can be formatted into a URL with the </text>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text> function can also be used in a named argument. All named arguments are convertible to </text>
              <reference id="SSBC59C6XUs+gwNHiw2EV5oj4Pg=">format_arg</reference>
              <text> and can be used in the </text>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text> function.</text>
            </para>
            <see>
              <reference id="IQym8fO7DIG67s+M2rtFQszkoaY=">arg</reference>
              <text>, </text>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text>, </text>
              <reference id="FNXbTBfIxbiM2pjYEryMCZH+yoY=">format_to</reference>
              <text>, </text>
              <reference id="SSBC59C6XUs+gwNHiw2EV5oj4Pg=">format_arg</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <namespace-alias name="optional" id="oSAYJle80BcL838BBRX63lch/5Q=">
          <file short-path="boost/url/optional.hpp" source-path="include/boost/url/optional.hpp" line="38"/>
          <type id="pvbTh8h5rATyXjIZZScz9NuTDj8=" name="boost::optional&lt;T&gt;"/>
          <doc>
            <brief>
              <text>The type of optional used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>boost::optional</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
      </template>
      <namespace-alias name="string_view" id="eTmWJVJVu1SBdk3eyejLHvdkz6o=">
        <file short-path="boost/url/string_view.hpp" source-path="include/boost/url/string_view.hpp" line="45"/>
        <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="boost::core::string_view"/>
        <doc>
          <brief>
            <text>The type of string_view used by the library</text>
          </brief>
          <para>
            <text>String views are used to pass character buffers into or out of functions. Ownership of the underlying character buffer is not transferred; the caller is responsible for ensuring that the lifetime of character buffer extends until it is no longer referenced.</text>
          </para>
          <para class="warning">
            <text>This alias is no longer supported and should not be used in new code. Please use </text>
            <mono>core::string_view</mono>
            <text> instead.</text>
          </para>
          <para>
            <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
          </para>
          <para>
            <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
          </para>
          <para>
            <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
          </para>
        </doc>
      </namespace-alias>
      <template>
        <tparam name="Ts" class="type"/>
        <namespace-alias name="variant" id="FhVAnUhR1V4cDQt6TPQXGyakQHc=">
          <file short-path="boost/url/variant.hpp" source-path="include/boost/url/variant.hpp" line="37"/>
          <type id="QtGP2EEaL9TZCpBhc3ngTWkaUfQ=" name="boost::variant2::variant&lt;Ts...&gt;"/>
          <doc>
            <brief>
              <text>The type of variant used by the library</text>
            </brief>
            <para class="warning">
              <text>This alias is no longer supported and should not be used in new code. Please use </text>
              <mono>boost::variant2::variant</mono>
              <text> instead.</text>
            </para>
            <para>
              <text>This alias is included for backwards compatibility with earlier versions of the library.</text>
            </para>
            <para>
              <text>However, it will be removed in future releases, and using it in new code is not recommended.</text>
            </para>
            <para>
              <text>Please use the updated version instead to ensure compatibility with future versions of the library.</text>
            </para>
          </doc>
        </namespace-alias>
      </template>
      <class name="authority_view" id="d/hMlyyC3Ave6L9McUD7B4TwENA=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="82" class="def"/>
        <file short-path="boost/url/detail/url_impl.hpp" source-path="include/boost/url/detail/url_impl.hpp" line="25"/>
        <friend id="3onwt5rBl6meLlK3K/V1g+2nSAo=">
          <befriended id="3onwt5rBl6meLlK3K/V1g+2nSAo="/>
        </friend>
        <friend id="hFJopnR14fIqBpDu1GGpNyp3Y5c=">
          <befriended id="hFJopnR14fIqBpDu1GGpNyp3Y5c="/>
        </friend>
        <friend id="jlb8m5L+4Dp3wPZXOocje2gAGok=">
          <befriended id="jlb8m5L+4Dp3wPZXOocje2gAGok="/>
        </friend>
        <friend id="F1TeTah5Uxojczk8Fz++HrM66vU=">
          <befriended id="F1TeTah5Uxojczk8Fz++HrM66vU="/>
        </friend>
        <friend id="qFHmi5LkvIRpILiiWOHp9hOpYQA=">
          <befriended id="qFHmi5LkvIRpILiiWOHp9hOpYQA="/>
        </friend>
        <friend id="NxK2yg1Y7T4SxurWSwoUG97wrN0=">
          <befriended id="NxK2yg1Y7T4SxurWSwoUG97wrN0="/>
        </friend>
        <friend id="ktBT7dVJ8LGHL6lYOr37Ts3gI4I=">
          <befriended id="ktBT7dVJ8LGHL6lYOr37Ts3gI4I="/>
        </friend>
        <doc>
          <brief>
            <text>A non-owning reference to a valid authority</text>
          </brief>
          <para>
            <text>Objects of this type represent valid authority strings constructed from a parsed, external character buffer whose storage is managed by the caller. That is, it acts like a </text>
            <mono>core::string_view</mono>
            <text> in terms of ownership. The caller is responsible for ensuring that the lifetime of the underlying character buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example 1</head>
          <para>
            <text>Construction from a string parses the input as an </text>
            <italic>authority</italic>
            <text> and throws an exception on error. Upon success, the constructed object points to the passed character buffer; ownership is not transferred.</text>
          </para>
          <code>
            <text>authority_view a( &quot;user:pass@www.example.com:8080&quot; );</text>
          </code>
          <head>Example 2</head>
          <para>
            <text>The parsing function </text>
            <reference id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">parse_authority</reference>
            <text> returns a </text>
            <mono>boost::system::result</mono>
            <text> containing either a valid </text>
            <reference id="VG25Omuk4IV1p0/lkJXq0DRNeh8=">authority_view</reference>
            <text> upon success, otherwise it contains an error. The error can be converted to an exception by the caller if desired:</text>
          </para>
          <code>
            <text>system::result&lt; authority_view &gt; rv = parse_authority( &quot;user:pass@www.example.com:8080&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = user [ &quot;:&quot; [ password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )

host          = IP-literal / IPv4address / reg-name

port          = *DIGIT</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">parse_authority</reference>
            <text>.</text>
          </see>
          <related>
            <reference id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">parse_authority</reference>
          </related>
        </doc>
        <function class="constructor" name="authority_view" exception-spec="noexcept" id="7hcySrM84Ao7kfBT3tInlrFE2mk=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="118"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed authorities refer to a string with zero length, which is always valid. This matches the grammar for a zero-length host.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
          </doc>
        </function>
        <function class="constructor" name="authority_view" exception-spec="noexcept" id="Qh3kGhIBnWwC5OdtBXHEX7oxk9g=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="162"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="authority_view" explicit-spec="explicit" id="Mggxod/TZ1rIFXqnjEPBAT5FCb8=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="157"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Construct from a string.</text>
            </brief>
            <para>
              <text>This function attempts to construct an authority from the string </text>
              <mono>s</mono>
              <text>, which must be a valid authority or else an exception is thrown. Upon successful construction, the view refers to the characters in the buffer pointed to by </text>
              <mono>s</mono>
              <text>. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until the view is destroyed.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = user [ &quot;:&quot; [ password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )

host          = IP-literal / IPv4address / reg-name

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse</text>
            </param>
            <see>
              <reference id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">parse_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function class="destructor" name="~authority_view" id="kUygN07qrKzz6xqsD2JO6tNbXRI=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="103"/>
          <attr id="is-virtual-as-written"/>
          <doc>
            <brief>
              <text>Destructor</text>
            </brief>
          </doc>
        </function>
        <function name="operator=" exception-spec="noexcept" id="uU1W5xbMeHDGB5MqSuuAAAYhZjg=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="176"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>This function assigns the contents of </text>
              <mono>other</mono>
              <text> to this object.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object</text>
            </returns>
            <param name="other">
              <text>The object to assign</text>
            </param>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="P11NP4P7YOcRNK3kZisALpUqCEQ=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="269" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the complete authority</text>
            </brief>
            <para>
              <text>This function returns the authority as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( parse_authority( &quot;www.example.com&quot; ).value().buffer() == &quot;www.example.com&quot; );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The complete authority</text>
            </returns>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="ib5/wfiEadKVMAM8qFs77UqtQfs=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1300"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another authority</text>
            </brief>
            <para>
              <text>This function compares two authorities according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>-1</mono>
              <text> if </text>
              <mono>*this &lt; other</mono>
              <text>, </text>
              <mono>0</mono>
              <text> if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The authority to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="xZrp4JdBQftr1jfEJocAOyzN32c=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="239" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the first character</text>
            </brief>
            <para>
              <text>This function returns a pointer to the beginning of the view, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="M1x440VyVqSlmfc5lWyOZfepvb4=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="222" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the authority is empty</text>
            </brief>
            <para>
              <text>An empty authority has an empty host, no userinfo, and no port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( authority_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the authority is empty</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="Zb+sv7mtlA9nc7tOl2UKjDFlFbU=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="785"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="LPU+syg+CdCexu20vM5i/h+g8MA=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="904"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="IyzTSrM6qF8ExmSAjRe6jouLT5w=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="5N16Bqd0+ZgJHR1NiZKAJK9EqwU=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1273"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port</text>
            </returns>
            <see>
              <reference id="IphAWosew2EkzMVgRvkC/OAJ0xw=">has_port</reference>
              <text>, </text>
              <reference id="k1FyNKXMpBVt6GfboIAkuHq+/3I=">port</reference>
              <text>, </text>
              <reference id="Io13bUCUJtWDXQuR23TbsYoTs5s=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="h9voFAeGtZlYmI+yXt56u3fAJIU=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1115"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="664kp4dyV0Fx8/OmpypdBDspW4w=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="662"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password</text>
            </returns>
            <see>
              <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
              <text>, </text>
              <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
              <text>, </text>
              <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
              <text>, </text>
              <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
              <text>, </text>
              <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
              <text>, </text>
              <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="522"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user</text>
            </returns>
            <see>
              <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
              <text>, </text>
              <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
              <text>, </text>
              <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
              <text>, </text>
              <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
              <text>, </text>
              <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
              <text>, </text>
              <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="419"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo</text>
            </returns>
            <see>
              <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
              <text>, </text>
              <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
              <text>, </text>
              <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
              <text>, </text>
              <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
              <text>, </text>
              <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
              <text>, </text>
              <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
              <text>, </text>
              <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="565"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a password is present</text>
            </returns>
            <see>
              <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
              <text>, </text>
              <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
              <text>, </text>
              <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
              <text>, </text>
              <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
              <text>, </text>
              <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
              <text>, </text>
              <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="IphAWosew2EkzMVgRvkC/OAJ0xw=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1158"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, otherwise </text>
              <mono>false</mono>
            </returns>
            <see>
              <reference id="5N16Bqd0+ZgJHR1NiZKAJK9EqwU=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="k1FyNKXMpBVt6GfboIAkuHq+/3I=">port</reference>
              <text>, </text>
              <reference id="Io13bUCUJtWDXQuR23TbsYoTs5s=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="320"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a userinfo is present</text>
            </returns>
            <see>
              <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
              <text>, </text>
              <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
              <text>, </text>
              <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
              <text>, </text>
              <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
              <text>, </text>
              <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
              <text>, </text>
              <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="1LoM2HiWtDiQycXsUvfWZhe6Hvc=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="740" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result.</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="OTOc1CgK/GuawlFPXjjcK6odYOE=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="840" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="IyzTSrM6qF8ExmSAjRe6jouLT5w=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="kVlbEpr6oa5by3+amQ8PBNKaZjA=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="945"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host IPv4 address</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="xMoi4KmbAmlKw5kq0RD+z3ZhDuM=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="994"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host IPv6 address</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="hIAl5fITeDqPWPPjGVlSz2zibgA=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1028"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host IPvFuture address</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="GMMqkVh5s3w58Fu0mI0lczX9Y3Q=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1068" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise, if the host type is not a name, it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="IyzTSrM6qF8ExmSAjRe6jouLT5w=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="699" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host type</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="612" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result.</text>
              </param>
              <see>
                <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
                <text>, </text>
                <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
                <text>, </text>
                <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
                <text>, </text>
                <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
                <text>, </text>
                <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
                <text>, </text>
                <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="port" exception-spec="noexcept" id="k1FyNKXMpBVt6GfboIAkuHq+/3I=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1195"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string</text>
            </returns>
            <see>
              <reference id="5N16Bqd0+ZgJHR1NiZKAJK9EqwU=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="IphAWosew2EkzMVgRvkC/OAJ0xw=">has_port</reference>
              <text>, </text>
              <reference id="Io13bUCUJtWDXQuR23TbsYoTs5s=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="Io13bUCUJtWDXQuR23TbsYoTs5s=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1232"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number</text>
            </returns>
            <see>
              <reference id="5N16Bqd0+ZgJHR1NiZKAJK9EqwU=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="IphAWosew2EkzMVgRvkC/OAJ0xw=">has_port</reference>
              <text>, </text>
              <reference id="k1FyNKXMpBVt6GfboIAkuHq+/3I=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="QoOOAaTfBdgqXsOWD90X3tltfF4=">
          <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="201" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the authority</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( authority_view( &quot;user:pass@www.example.com:8080&quot; ).size() == 30 );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the authority</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="468" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result.</text>
              </param>
              <see>
                <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
                <text>, </text>
                <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
                <text>, </text>
                <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
                <text>, </text>
                <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
                <text>, </text>
                <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
                <text>, </text>
                <reference id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="E7fOFpu0yWBp7ZqmLKZ88iVethA=">
            <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="366" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The userinfo</text>
              </returns>
              <param name="token">
                <text>A string token to receive the result.</text>
              </param>
              <see>
                <reference id="kld0eiD6C4e3P/TIBG1sVBTu9EI=">has_password</reference>
                <text>, </text>
                <reference id="ufGAEpjGVrDAR7Z/aWObLlB+/Fw=">has_userinfo</reference>
                <text>, </text>
                <reference id="664kp4dyV0Fx8/OmpypdBDspW4w=">encoded_password</reference>
                <text>, </text>
                <reference id="WjFBzWA+QC4kWYmVk8wQqzyzjsY=">encoded_user</reference>
                <text>, </text>
                <reference id="mHvLEk+wU7kVqeR1MftB7V7RXj8=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="ROTG9938TiCaHNr0Rzc3CrPNSQc=">password</reference>
                <text>, </text>
                <reference id="k0L9aRcMAFLBOG3fVUZA4rt/Q5k=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
      </class>
      <class name="decode_view" id="IhE/V16b2wBX2q+s4QtlgzozWlQ=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="70" class="def"/>
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="31"/>
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="26"/>
        <friend id="NEW80CQmVEZON/EvVc6gQsnJwIE=">
          <befriended id="NEW80CQmVEZON/EvVc6gQsnJwIE="/>
        </friend>
        <friend id="nFUncXFoKaz6GC1HbXnibuE8ezg=">
          <befriended id="nFUncXFoKaz6GC1HbXnibuE8ezg="/>
        </friend>
        <friend id="njx8Q7wnnD1jPqxCgk6VjUufNlY=">
          <befriended id="njx8Q7wnnD1jPqxCgk6VjUufNlY="/>
        </friend>
        <friend id="aAj/wyLdJMro0+uVDfExz9lDP2g=">
          <befriended id="aAj/wyLdJMro0+uVDfExz9lDP2g="/>
        </friend>
        <friend id="B0rnFLRkOT6fyREi83RvdsGZIlQ=">
          <befriended id="B0rnFLRkOT6fyREi83RvdsGZIlQ="/>
        </friend>
        <friend id="pRqLvkaFw0SG1RpbGWAKWhVi+kY=">
          <befriended id="pRqLvkaFw0SG1RpbGWAKWhVi+kY="/>
        </friend>
        <friend id="Oc4RZ743cU0XGETas6CbQ6l8OeU=">
          <befriended id="Oc4RZ743cU0XGETas6CbQ6l8OeU="/>
        </friend>
        <friend id="bZeyA134srRl+e70k55k9xdabWM=">
          <befriended id="bZeyA134srRl+e70k55k9xdabWM="/>
        </friend>
        <friend id="4vZx12Tkx7fqOjRW/LuvhFPLbNQ=">
          <befriended id="4vZx12Tkx7fqOjRW/LuvhFPLbNQ="/>
        </friend>
        <friend id="DnQyjGJxZiJY8aCECV80mE2qduU=">
          <befriended id="DnQyjGJxZiJY8aCECV80mE2qduU="/>
        </friend>
        <friend id="OVm8/SgmvpzcmT0wU0//KbTy63M=">
          <befriended id="OVm8/SgmvpzcmT0wU0//KbTy63M="/>
        </friend>
        <friend id="R4RSA/p1I3uroTWbOqtfvFR/cF0=">
          <befriended id="R4RSA/p1I3uroTWbOqtfvFR/cF0="/>
        </friend>
        <friend id="UbZF/ZfCDoPCOIiSZu6q2PC/Edk=">
          <befriended id="UbZF/ZfCDoPCOIiSZu6q2PC/Edk="/>
        </friend>
        <friend id="vSmsDLb1jKJxuRaLWtT+wXrZDEQ=">
          <befriended id="vSmsDLb1jKJxuRaLWtT+wXrZDEQ="/>
        </friend>
        <friend id="YH1cQI8sFN/t7l0ziTbCiZ8hyKc=">
          <befriended id="YH1cQI8sFN/t7l0ziTbCiZ8hyKc="/>
        </friend>
        <friend id="gnCCLTp9Yc1Gqma6vl3Zy+AGvl8=">
          <befriended id="gnCCLTp9Yc1Gqma6vl3Zy+AGvl8="/>
        </friend>
        <friend id="LXfbkHmiZLmAZU/h8W/FYVwBH3o=">
          <befriended id="LXfbkHmiZLmAZU/h8W/FYVwBH3o="/>
        </friend>
        <friend id="kAkiATsPkDLw0dMpRFfiCYb0Nb0=">
          <befriended id="kAkiATsPkDLw0dMpRFfiCYb0Nb0="/>
        </friend>
        <friend id="kUOudipymtwCZViHCF1w2siMg5M=">
          <befriended id="kUOudipymtwCZViHCF1w2siMg5M="/>
        </friend>
        <doc>
          <brief>
            <text>A reference to a valid, percent-encoded string</text>
          </brief>
          <para>
            <text>These views reference strings in parts of URLs or other components that are percent-encoded. The special characters (those not in the allowed character set) are stored as three character escapes that consist of a percent sign (&apos;%%&apos;) followed by a two-digit hexadecimal number of the corresponding unescaped character code, which may be part of a UTF-8 code point depending on the context.</text>
          </para>
          <para>
            <text>The view refers to the original character buffer and only decodes escaped sequences when needed. In particular these operations perform percent-decoding automatically without the need to allocate memory:</text>
          </para>
          <unorderedlist>
            <listitem>
              <text>Iteration of the string</text>
            </listitem>
            <listitem>
              <text>Accessing the encoded character buffer</text>
            </listitem>
            <listitem>
              <text>Comparison to encoded or plain strings</text>
            </listitem>
          </unorderedlist>
          <para>
            <text>These objects can only be constructed from strings that have a valid percent-encoding, otherwise construction fails. The caller is responsible for ensuring that the lifetime of the character buffer from which the view is constructed extends unmodified until the view is no longer accessed.</text>
          </para>
        </doc>
        <namespace-alias name="const_iterator" id="+WFGa/Npazkk2KQxJFMCObnV1ys=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="128"/>
          <type id="RJjaGOGrDXihzByQ5SCUDOMvJUQ=" name="iterator"/>
          <doc>
            <brief>
              <text>An iterator of constant, decoded characters.</text>
            </brief>
            <para>
              <text>This iterator is used to access the encoded string as a </text>
              <italic>bidirectional</italic>
              <text> range of characters with percent-decoding applied. Escape sequences are not decoded until the iterator is dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="dsoXs8+IEzA2gxkXsKc05jhx6i8=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="107"/>
          <type name="char"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="ITBKnjnb+u9SjtqEBf3ZGhgPMug=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="115"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>The signed integer type</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="LM/YiIa7wGjCUI6gFgqSOYdXFiI=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="104"/>
          <type name="char"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="WUarjL7s5UjYPh79iCrkYCBGvys=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="111"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>The unsigned integer type</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="O/soISCAhETK++CfqOUnFdf5Yew=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="100"/>
          <type name="char"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
          </doc>
        </namespace-alias>
        <class name="iterator" id="RJjaGOGrDXihzByQ5SCUDOMvJUQ=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="125"/>
          <friend id="IhE/V16b2wBX2q+s4QtlgzozWlQ=">
            <befriended id="IhE/V16b2wBX2q+s4QtlgzozWlQ="/>
          </friend>
          <doc>
            <brief>
              <text>An iterator of constant, decoded characters.</text>
            </brief>
            <para>
              <text>This iterator is used to access the encoded string as a </text>
              <italic>bidirectional</italic>
              <text> range of characters with percent-decoding applied. Escape sequences are not decoded until the iterator is dereferenced.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="decode_view" exception-spec="noexcept" id="eAPVm8NQBej8p5oB1rosq8FXRJ8=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="157" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default-constructed views represent empty strings.</text>
            </para>
            <head>Example</head>
            <code>
              <text>decode_view ds;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="decode_view" exception-spec="noexcept" explicit-spec="explicit" id="NJSj5E+0oy7t+s0NXR2ZXjQ9xtI=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="195" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="opt" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This constructs a view from the character buffer </text>
              <mono>s</mono>
              <text>, which must remain valid and unmodified until the view is no longer accessed.</text>
            </para>
            <head>Example</head>
            <code>
              <text>decode_view ds( &quot;Program%20Files&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;encoded() == s</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Although this function does not throw exceptions, implicitly constructing a </text>
              <reference id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=">pct_string_view</reference>
              <text> for the first argument can throw exceptions on invalid input.</text>
            </para>
            <param name="s">
              <text>A percent-encoded string that has already been validated. Implicit conversion from other string types is supported but may throw exceptions.</text>
            </param>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, the default options are used.</text>
            </param>
          </doc>
        </function>
        <function name="back" exception-spec="noexcept" id="v2MvnLejOCbc7GCMe4SUCqYdzuw=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="339"/>
          <attr id="is-const"/>
          <return>
            <type id="LM/YiIa7wGjCUI6gFgqSOYdXFiI=" name="reference"/>
          </return>
          <doc>
            <brief>
              <text>Return the last character</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).back() == &apos;s&apos; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>not this-&gt;empty()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The last decoded character</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="iQLLg5LXS5HS59iawKegjBizWrs=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="275"/>
          <attr id="is-const"/>
          <return>
            <type id="RJjaGOGrDXihzByQ5SCUDOMvJUQ=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Example</head>
            <code>
              <text>auto it = this-&gt;begin();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first decoded character</text>
            </returns>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="FDIGmTcdvZb4fiCd43F/oGgGwBo=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="554"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>The length of the sequences to compare is the smaller of </text>
              <mono>size()</mono>
              <text> and </text>
              <mono>other.size()</mono>
              <text>.</text>
            </para>
            <para>
              <text>The function compares the two strings as if by calling </text>
              <mono>char_traits&lt;char&gt;::compare(to_string().data(), v.to_string().data(), rlen)</mono>
              <text>. This means the comparison is performed with percent-decoding applied to the current string.</text>
            </para>
            <returns>
              <text>Negative value if this string is less than the other character sequence, zero if the both character sequences are equal, positive value if this string is greater than the other character sequence</text>
            </returns>
            <param name="other">
              <text>string to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="Kb6J2yY/SCb3BaJqiBQ1RbA9hi8=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="533"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>The length of the sequences to compare is the smaller of </text>
              <mono>size()</mono>
              <text> and </text>
              <mono>other.size()</mono>
              <text>.</text>
            </para>
            <para>
              <text>The function compares the two strings as if by calling </text>
              <mono>char_traits&lt;char&gt;::compare(to_string().data(), v.data(), rlen)</mono>
              <text>. This means the comparison is performed with percent-decoding applied to the current string.</text>
            </para>
            <returns>
              <text>Negative value if this string is less than the other character sequence, zero if the both character sequences are equal, positive value if this string is greater than the other character sequence</text>
            </returns>
            <param name="other">
              <text>string to compare</text>
            </param>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="QTP+smKy42IX23/bha0/lCZuKvA=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="228" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the string is empty</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the string is empty</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="4wmBqe+LhDEIACWF3EGP0Bd6HAY=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="293"/>
          <attr id="is-const"/>
          <return>
            <type id="RJjaGOGrDXihzByQ5SCUDOMvJUQ=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Example</head>
            <code>
              <text>auto it = this-&gt;end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last decoded character</text>
            </returns>
          </doc>
        </function>
        <function name="ends_with" exception-spec="noexcept" id="SD4KpfDtgThHckp4c8NPgXJKNkk=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="379"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Checks if the string ends with the given prefix</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).ends_with(&quot;Files&quot;) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the decoded string ends with </text>
              <mono>s</mono>
            </returns>
            <param name="s">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="ends_with" exception-spec="noexcept" id="0sYolzp16RbCmWwB4be5Gy+vvww=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="419"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Checks if the string ends with the given prefix</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).ends_with(&apos;s&apos;) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the decoded string ends with </text>
              <mono>ch</mono>
            </returns>
            <param name="ch">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="hkeL0A/pJ2UIzzTmm96nKrt+LBs=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="434"/>
          <attr id="is-const"/>
          <return>
            <type id="+WFGa/Npazkk2KQxJFMCObnV1ys=" name="const_iterator"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Finds the first occurrence of character in this view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first decoded occurrence of </text>
              <mono>ch</mono>
              <text> or </text>
              <mono>end()</mono>
            </returns>
            <param name="ch">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="De4rjcxEx6Iu5WjQwYtqucglfeU=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="316"/>
          <attr id="is-const"/>
          <return>
            <type id="LM/YiIa7wGjCUI6gFgqSOYdXFiI=" name="reference"/>
          </return>
          <doc>
            <brief>
              <text>Return the first character</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).front() == &apos;P&apos; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>not this-&gt;empty()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The first decoded character</text>
            </returns>
          </doc>
        </function>
        <function name="options" exception-spec="noexcept" id="sz1hEG7HjWYfKnVM/UYsW1p+Oac=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="502" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </return>
          <doc>
            <brief>
              <text>Return the decoding options</text>
            </brief>
            <returns>
              <text>The decoding options used by this view</text>
            </returns>
          </doc>
        </function>
        <function name="remove_prefix" id="effH9yxIklQocxw3XKF/4ett1w4=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="472"/>
          <param name="n">
            <type id="WUarjL7s5UjYPh79iCrkYCBGvys=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Remove the first characters</text>
            </brief>
            <head>Example</head>
            <code>
              <text>decode_view d( &quot;Program%20Files&quot; );
d.remove_prefix( 8 );
assert( d == &quot;Files&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>not this-&gt;empty()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <param name="n">
              <text>The number of characters to remove</text>
            </param>
          </doc>
        </function>
        <function name="remove_suffix" id="1R4DUvuQwKv6WlHxyYjr93Kkscw=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="495"/>
          <param name="n">
            <type id="WUarjL7s5UjYPh79iCrkYCBGvys=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Remove the last characters</text>
            </brief>
            <head>Example</head>
            <code>
              <text>decode_view d( &quot;Program%20Files&quot; );
d.remove_prefix( 6 );
assert( d == &quot;Program&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>not this-&gt;empty()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <param name="n">
              <text>The number of characters to remove</text>
            </param>
          </doc>
        </function>
        <function name="rfind" exception-spec="noexcept" id="C6JRbh3doXEX3onBJSrJ0o10rjY=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="449"/>
          <attr id="is-const"/>
          <return>
            <type id="+WFGa/Npazkk2KQxJFMCObnV1ys=" name="const_iterator"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Finds the first occurrence of character in this view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the last occurrence of </text>
              <mono>ch</mono>
              <text> or </text>
              <mono>end()</mono>
            </returns>
            <param name="ch">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="ptE1sYaL1GIlVlRsxzTe47e7hKA=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="254" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="WUarjL7s5UjYPh79iCrkYCBGvys=" name="size_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of decoded characters</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).size() == 13 );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return std::distance( this-&gt;begin(), this-&gt;end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of decoded characters</text>
            </returns>
          </doc>
        </function>
        <function name="starts_with" exception-spec="noexcept" id="F+yFoNgUzmS6yORtPEWliD3Vu9c=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="359"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Checks if the string begins with the given prefix</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).starts_with(&quot;Program&quot;) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the decoded string starts with </text>
              <mono>s</mono>
            </returns>
            <param name="s">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="starts_with" exception-spec="noexcept" id="tFrTSrWJPm4x57tvMriM/hN4uuU=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="399"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Checks if the string begins with the given prefix</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( decode_view( &quot;Program%20Files&quot; ).starts_with(&apos;P&apos;) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the decoded string starts with </text>
              <mono>ch</mono>
            </returns>
            <param name="ch">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
      </class>
      <struct name="encoding_opts" id="Bb04pNwExynJkzlY9a9GCeeB13k=">
        <file short-path="boost/url/encoding_opts.hpp" source-path="include/boost/url/encoding_opts.hpp" line="31" class="def"/>
        <doc>
          <brief>
            <text>Percent-encoding options</text>
          </brief>
          <para>
            <text>These options are used to customize the behavior of algorithms which use percent escapes, such as encoding or decoding.</text>
          </para>
          <see>
            <reference id="09aIpdxxNNYbVZSULaBGficRxZ4=">encode</reference>
            <text>, </text>
            <reference id="Xq8kBc9a/F5Bpmn1q4OszstzJ4g=">encoded_size</reference>
            <text>, </text>
            <reference id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=">pct_string_view</reference>
            <text>.</text>
          </see>
        </doc>
        <function class="constructor" name="encoding_opts" exception-spec="noexcept" id="2VvdPVwN/ooLfPHJMJ6u2y7wrd8=">
          <file short-path="boost/url/encoding_opts.hpp" source-path="include/boost/url/encoding_opts.hpp" line="117" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="space_as_plus" default="false">
            <type name="bool" cv-qualifiers="const"/>
          </param>
          <param name="lower_case" default="false">
            <type name="bool" cv-qualifiers="const"/>
          </param>
          <param name="disallow_null" default="false">
            <type name="bool" cv-qualifiers="const"/>
          </param>
          <doc>
            <brief>
              <text>Constructs an </text>
              <mono>encoding_opts</mono>
              <text> object with the specified options.</text>
            </brief>
            <param name="space_as_plus">
              <text>If true, spaces will be encoded as plus signs.</text>
            </param>
            <param name="lower_case">
              <text>If true, hexadecimal digits will be emitted as lower case.</text>
            </param>
            <param name="disallow_null">
              <text>If true, null characters will not be allowed.</text>
            </param>
          </doc>
        </function>
        <variable name="disallow_null" id="W8lLIQ0OxCY0KjdFXSivr+lwjnQ=" default="false">
          <file short-path="boost/url/encoding_opts.hpp" source-path="include/boost/url/encoding_opts.hpp" line="109"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if nulls are not allowed</text>
            </brief>
            <para>
              <text>Normally all possible character values (from 0 to 255) are allowed, with reserved characters being replaced with escapes upon encoding. When this option is true, attempting to decode a null will result in an error.</text>
            </para>
          </doc>
        </variable>
        <variable name="lower_case" id="daFUEqcxAu4wd2geA6ibb6XUilg=" default="false">
          <file short-path="boost/url/encoding_opts.hpp" source-path="include/boost/url/encoding_opts.hpp" line="98"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if hexadecimal digits are emitted as lower case</text>
            </brief>
            <para>
              <text>By default, percent-encoding algorithms emit hexadecimal digits A through F as uppercase letters. When this option is </text>
              <mono>true</mono>
              <text>, lowercase letters are used.</text>
            </para>
          </doc>
        </variable>
        <variable name="space_as_plus" id="pzxkqgCIpSWae1U9TUQWUjO2iqE=" default="false">
          <file short-path="boost/url/encoding_opts.hpp" source-path="include/boost/url/encoding_opts.hpp" line="89"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if spaces encode to and from plus signs</text>
            </brief>
            <para>
              <text>Although not prescribed by RFC 3986, many applications decode plus signs in URL queries as spaces. In particular, the form-urlencoded Media Type in HTML for submitting forms uses this convention.</text>
            </para>
            <para>
              <text>This option controls whether the PLUS character (&quot;+&quot;) is used to represent the SP character (&quot; &quot;) when encoding or decoding.</text>
            </para>
            <para>
              <text>When this option is </text>
              <mono>true</mono>
              <text>, both the encoded SP (&quot;%20&quot;) and the PLUS character (&quot;+&quot;) represent a space (&quot; &quot;) when decoding. To represent a plus sign, its encoded form (&quot;%2B&quot;) is used.</text>
            </para>
            <para>
              <text>The </text>
              <reference id="09aIpdxxNNYbVZSULaBGficRxZ4=">encode</reference>
              <text> and </text>
              <reference id="Xq8kBc9a/F5Bpmn1q4OszstzJ4g=">encoded_size</reference>
              <text> functions will encode spaces as plus signs when this option is </text>
              <mono>true</mono>
              <text>, regardless of the allowed character set. They will also encode plus signs as &quot;%2B&quot; when this option is </text>
              <mono>true</mono>
              <text>, regardless of the allowed character set.</text>
            </para>
            <para>
              <text>Note that when a URL is normalized, all unreserved percent-encoded characters are replaced with their unreserved equivalents. However, normalizing the URL query maintains the decoded and encoded &quot;&amp;=+&quot; as they are because they might have different meanings.</text>
            </para>
            <para>
              <text>This behavior is not optional because normalization can only mitigate false negatives, but it should eliminate false positives. Making it optional would allow a false positive because there&apos;s at least one very relevant schema (HTTP) where a decoded or encoded &quot;&amp;=+&quot; has different meanings and represents different resources.</text>
            </para>
            <para>
              <text>The same considerations apply to URL comparison algorithms in the library, as they treat URLs as if they were normalized.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1">application/x-www-form-urlencoded (w3.org)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc1866#section-8.2.1">The form-urlencoded Media Type (RFC 1866)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2.2">Section 6.2.2.2. Percent-Encoding Normalization (RFC 3986)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </variable>
      </struct>
      <class name="ignore_case_param" id="RATceEbebMWrhFXGkG2RDFi+7WY=">
        <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="43" class="def"/>
        <doc>
          <brief>
            <text>An optional parameter to determine case-sensitivity</text>
          </brief>
          <para>
            <text>Functions may use parameters of this type to allow the user to optionally indicate that comparisons should be case-insensitive when the value </text>
            <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
            <text> is passed.</text>
          </para>
          <see>
            <reference id="8S83BKvWBCDdTktlY8X93Mlo9E0=">params_ref</reference>
          </see>
        </doc>
        <function class="constructor" name="ignore_case_param" exception-spec="noexcept" id="OgZndABYifoxB4gRablGbBI5fg4=">
          <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="68" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>By default, comparisons are case-sensitive.</text>
            </para>
            <head>Example</head>
            <para>
              <text>This function performs case-sensitive comparisons when called with no arguments:</text>
            </para>
            <code>
              <text>void f( ignore_case_param = {} );</text>
            </code>
          </doc>
        </function>
        <function class="constructor" name="ignore_case_param" exception-spec="noexcept" id="A+hfu3tyH700EXj/A44KkHYwBZ0=">
          <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="89" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="value">
            <type id="X8bO9PzAZhZe4KoaCSz4/o1kias=" name="implementation_defined::ignore_case_t"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Construction from </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> indicates that comparisons should be case-insensitive.</text>
            </para>
            <para>
              <text>The first parameter to this function should be the variable </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <para>
              <text>When </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed as an argument, this function ignores case when performing comparisons:</text>
            </para>
            <code>
              <text>void f( ignore_case_param(ignore_case) );</text>
            </code>
            <param name="value">
              <text>The object to construct from</text>
            </param>
          </doc>
        </function>
        <function class="conversion" name="operator bool" exception-spec="noexcept" id="lXpAYsiIRGoZg3fANCJGIa1E0bY=">
          <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="106" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>True if an algorithm should ignore case</text>
            </brief>
            <para>
              <text>Values of type </text>
              <mono>ignore_case_param</mono>
              <text> evaluate to true when constructed with the constant </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text>. Otherwise, they are default-constructed and evaluate to </text>
              <mono>false</mono>
              <text>.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if case should be ignored</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="ipv4_address" id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">
        <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="53" class="def"/>
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="26"/>
        <friend id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">
          <befriended id="dhMSRVBIIIItY0URHSc8rwHcdTQ="/>
        </friend>
        <friend id="qsp5+FhQP5YRksKrdFYv9yXJFZA=">
          <befriended id="qsp5+FhQP5YRksKrdFYv9yXJFZA="/>
        </friend>
        <friend id="Lk6u1xBQtbEyGW+iFcIykNQyhVo=">
          <befriended id="Lk6u1xBQtbEyGW+iFcIykNQyhVo="/>
        </friend>
        <friend id="8obEUnt+lW3Tn+hrzU1C0MkLqg0=">
          <befriended id="8obEUnt+lW3Tn+hrzU1C0MkLqg0="/>
        </friend>
        <doc>
          <brief>
            <text>An IP version 4 style address.</text>
          </brief>
          <para>
            <text>Objects of this type are used to construct, parse, and manipulate IP version 6 addresses.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
            </listitem>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="3H1nFll3jIwKtiUjrAoL1itMXS8=">parse_ipv4_address</reference>
            <text>, </text>
            <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
            <text>.</text>
          </see>
          <related>
            <reference id="3H1nFll3jIwKtiUjrAoL1itMXS8=">parse_ipv4_address</reference>
          </related>
        </doc>
        <namespace-alias name="bytes_type" id="K1Ec2DqsA1sP9/ZiWr9xXxLTWmc=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="71"/>
          <type id="9ltnwJRAKDTm+ldPpBi2MjoHPd4=" name="std::array&lt;unsigned char, 4&gt;"/>
          <doc>
            <brief>
              <text>The type used to represent an address as an array of bytes</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="uint_type" id="gmFwLFTtOAD/QhqgQ5gVWIkwfqE=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="66"/>
          <type id="laiap25VFXAU1DkRAvgQDyk50c0=" name="uint_least32_t"/>
          <doc>
            <brief>
              <text>The type used to represent an address as an unsigned integer</text>
            </brief>
          </doc>
        </namespace-alias>
        <function class="constructor" name="ipv4_address" id="yl0UOHuSxHom06qa0b8lfcld6Dg=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="76" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor.</text>
            </brief>
          </doc>
        </function>
        <function class="constructor" name="ipv4_address" id="2cq8c2vzuDpA/hkdQG4szL6NZKo=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="80" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor.</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="ipv4_address" explicit-spec="explicit" id="jpD0S+uCl/0/GH4pCJUXCyRH1eg=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="148"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Construct from a string.</text>
            </brief>
            <para>
              <text>This function constructs an address from the string </text>
              <mono>s</mono>
              <text>, which must contain a valid IPv4 address string or else an exception is thrown.</text>
            </para>
            <para class="note">
              <text>For a non-throwing parse function, use </text>
              <reference id="3H1nFll3jIwKtiUjrAoL1itMXS8=">parse_ipv4_address</reference>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <text>The input failed to parse correctly.</text>
            </throws>
            <see>
              <reference id="3H1nFll3jIwKtiUjrAoL1itMXS8=">parse_ipv4_address</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function class="constructor" name="ipv4_address" exception-spec="noexcept" explicit-spec="explicit" id="aB6a40BtSJOo6VPaSj6d1VeV/nw=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="106"/>
          <param name="u">
            <type id="gmFwLFTtOAD/QhqgQ5gVWIkwfqE=" name="uint_type"/>
          </param>
          <doc>
            <brief>
              <text>Construct from an unsigned integer.</text>
            </brief>
            <para>
              <text>This function constructs an address from the unsigned integer </text>
              <mono>u</mono>
              <text>, where the most significant byte forms the first octet of the resulting address.</text>
            </para>
            <param name="u">
              <text>The integer to construct from.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="ipv4_address" exception-spec="noexcept" explicit-spec="explicit" id="vpg1zqnzj2qzOiM3iQHcOs3IkMA=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="119"/>
          <param name="bytes">
            <type class="lvalue-reference">
              <pointee-type id="K1Ec2DqsA1sP9/ZiWr9xXxLTWmc=" name="bytes_type" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from an array of bytes.</text>
            </brief>
            <para>
              <text>This function constructs an address from the array in </text>
              <mono>bytes</mono>
              <text>, which is interpreted in big-endian.</text>
            </para>
            <param name="bytes">
              <text>The value to construct from.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="3eS9MgTYDwQQzKa7ec0u01AAKlk=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="88" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy Assignment.</text>
            </brief>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The object to copy.</text>
            </param>
          </doc>
        </function>
        <function name="is_loopback" exception-spec="noexcept" id="yIu3SCo9OYk8ihlq2QUpl59vU5I=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="233"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is a loopback address</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if the address is a loopback address</text>
            </returns>
          </doc>
        </function>
        <function name="is_multicast" exception-spec="noexcept" id="RhR9qztBnmIo5dp/yMR/Dxo6sGE=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="249"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is a multicast address</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if the address is a multicast address</text>
            </returns>
          </doc>
        </function>
        <function name="is_unspecified" exception-spec="noexcept" id="v6jOcZd9sFpSijOm3jH6PikYlfM=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="241"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is unspecified</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if the address is unspecified</text>
            </returns>
          </doc>
        </function>
        <function name="to_buffer" id="LEr2z93gPK9hDl27bqMsxNYx1GI=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="223"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <param name="dest">
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
          </param>
          <param name="dest_size">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Write a dotted decimal string representing the address to a buffer</text>
            </brief>
            <para>
              <text>The resulting buffer is not null-terminated.</text>
            </para>
            <returns>
              <text>The formatted string</text>
            </returns>
            <param name="dest">
              <text>The buffer in which to write, which must have at least </text>
              <mono>dest_size</mono>
              <text> space.</text>
            </param>
            <param name="dest_size">
              <text>The size of the output buffer.</text>
            </param>
            <throws>
              <mono>dest_size &lt; ipv4_address::max_str_len</mono>
            </throws>
          </doc>
        </function>
        <function name="to_bytes" exception-spec="noexcept" id="hG+Han3p/bpn3XDjzJeEon2Wy30=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="157"/>
          <attr id="is-const"/>
          <return>
            <type id="K1Ec2DqsA1sP9/ZiWr9xXxLTWmc=" name="bytes_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the address as bytes, in network byte order.</text>
            </brief>
            <returns>
              <text>The address as an array of bytes.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="to_string" id="iunqRmAnQNdGCAQuPEeWrF4oKTM=">
            <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="201" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the address as a string in dotted decimal format</text>
              </brief>
              <para>
                <text>When called with no arguments, the return type is </text>
                <mono>std::string</mono>
                <text>. Otherwise, the return type and style of output is determined by which string token is passed.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( ipv4_address(0x01020304).to_string() == &quot;1.2.3.4&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.2">2.2. Text Representation of Addresses (rfc4291)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The return type of the string token. If the token parameter is omitted, then a new </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the function return type is the result type of the token.</text>
              </returns>
              <param name="token">
                <text>An optional string token.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="to_uint" exception-spec="noexcept" id="sGEjPwyf9VhDEZc80rdhomT49gQ=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="165"/>
          <attr id="is-const"/>
          <return>
            <type id="gmFwLFTtOAD/QhqgQ5gVWIkwfqE=" name="uint_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the address as an unsigned integer.</text>
            </brief>
            <returns>
              <text>The address as an unsigned integer.</text>
            </returns>
          </doc>
        </function>
        <function name="any" exception-spec="noexcept" id="QVRcQKVos5VYBTTWZx53+bb+fic=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="287" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return an address object that represents any address</text>
            </brief>
            <returns>
              <text>The any address.</text>
            </returns>
          </doc>
        </function>
        <function name="broadcast" exception-spec="noexcept" id="z0vlZykhfnZ9AtSNCNEcCCXxTIA=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="309" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return an address object that represents the broadcast address</text>
            </brief>
            <returns>
              <text>The broadcast address.</text>
            </returns>
          </doc>
        </function>
        <function name="loopback" exception-spec="noexcept" id="23+xtsBhwg+Sz8fF41qaRCKLPLw=">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="298" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return an address object that represents the loopback address</text>
            </brief>
            <returns>
              <text>The loopback address.</text>
            </returns>
          </doc>
        </function>
        <variable name="max_str_len" id="opjoR3Y3GXEbaNYk0xifdxnGTx8=" default="15">
          <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="60" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>The number of characters in the longest possible IPv4 string.</text>
            </brief>
            <para>
              <text>The longest ipv4 address string is &quot;255.255.255.255&quot;.</text>
            </para>
          </doc>
        </variable>
      </class>
      <class name="ipv6_address" id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="62" class="def"/>
        <friend id="9qni7/SzoSi1aPxdsLv9l8kUlMw=">
          <befriended id="9qni7/SzoSi1aPxdsLv9l8kUlMw="/>
        </friend>
        <friend id="cqaXRu9n2E1Aq+fNQVQILaVo/Ss=">
          <befriended id="cqaXRu9n2E1Aq+fNQVQILaVo/Ss="/>
        </friend>
        <friend id="/Rx5cBJ8hgc8Yigu7zsZeyTHTTc=">
          <befriended id="/Rx5cBJ8hgc8Yigu7zsZeyTHTTc="/>
        </friend>
        <doc>
          <brief>
            <text>An IP version 6 style address.</text>
          </brief>
          <para>
            <text>Objects of this type are used to construct, parse, and manipulate IP version 6 addresses.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
            </listitem>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
            <text>, </text>
            <reference id="bEw/qaAlNfZy1QraETx5dipoF+I=">parse_ipv6_address</reference>
            <text>.</text>
          </see>
          <related>
            <reference id="bEw/qaAlNfZy1QraETx5dipoF+I=">parse_ipv6_address</reference>
          </related>
        </doc>
        <namespace-alias name="bytes_type" id="3HLniRaTZARS/qsIh1WH0IPNx7E=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="87"/>
          <type id="9ltnwJRAKDTm+ldPpBi2MjoHPd4=" name="std::array&lt;unsigned char, 16&gt;"/>
          <doc>
            <brief>
              <text>The type used to represent an address as an array of bytes.</text>
            </brief>
            <para>
              <text>Octets are stored in network byte order.</text>
            </para>
          </doc>
        </namespace-alias>
        <function class="constructor" name="ipv6_address" id="SMQrQdasCvP7xFVD5OpcHN7Rao8=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="101" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor.</text>
            </brief>
            <para>
              <text>Default constructed objects represent the unspecified address.</text>
            </para>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.2">2.5.2. The Unspecified Address</link>
              </listitem>
            </unorderedlist>
            <see>
              <reference id="ogO/p3Rsy76ZR5BBjd+JT5p9mAI=">is_unspecified</reference>
            </see>
          </doc>
        </function>
        <function class="constructor" name="ipv6_address" id="akXF+HlgiEVzawbJVW+kTfdVx8A=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="105" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor.</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="ipv6_address" id="AvcoK23WHDbGR+iOtQJRebxgDgw=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="170"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Construct from a string.</text>
            </brief>
            <para>
              <text>This function constructs an address from the string </text>
              <mono>s</mono>
              <text>, which must contain a valid IPv6 address string or else an exception is thrown.</text>
            </para>
            <para class="note">
              <text>For a non-throwing parse function, use </text>
              <reference id="bEw/qaAlNfZy1QraETx5dipoF+I=">parse_ipv6_address</reference>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <text>The input failed to parse correctly.</text>
            </throws>
            <see>
              <reference id="bEw/qaAlNfZy1QraETx5dipoF+I=">parse_ipv6_address</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function class="constructor" name="ipv6_address" exception-spec="noexcept" id="8yJ1G5WP9NCIXNIPmIidpbqaFFs=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="125"/>
          <param name="bytes">
            <type class="lvalue-reference">
              <pointee-type id="3HLniRaTZARS/qsIh1WH0IPNx7E=" name="bytes_type" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from an array of bytes.</text>
            </brief>
            <para>
              <text>This function constructs an address from the array in </text>
              <mono>bytes</mono>
              <text>, which is interpreted in big-endian.</text>
            </para>
            <param name="bytes">
              <text>The value to construct from.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="ipv6_address" exception-spec="noexcept" id="jUKtD+hBU5HohlZsk0aE9sD4+9o=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="141"/>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from an IPv4 address.</text>
            </brief>
            <para>
              <text>This function constructs an IPv6 address from the IPv4 address </text>
              <mono>addr</mono>
              <text>. The resulting address is an IPv4-Mapped IPv6 Address.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2">2.5.5.2. IPv4-Mapped IPv6 Address (rfc4291)</link>
              </listitem>
            </unorderedlist>
            <param name="addr">
              <text>The address to construct from.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="mrs1+u9ux/as1SWpxt5acP82xUI=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="112" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy Assignment</text>
            </brief>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="other">
              <text>The object to copy assign from</text>
            </param>
          </doc>
        </function>
        <function name="is_loopback" exception-spec="noexcept" id="3CAIYwRL/lOXbVPvVDAG1wmwB6o=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="281"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is a loopback address</text>
            </brief>
            <para>
              <text>The unicast address 0:0:0:0:0:0:0:1 is called the loopback address. It may be used by a node to send an IPv6 packet to itself.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.3">2.5.3. The Loopback Address (rfc4291)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the address is a loopback address</text>
            </returns>
          </doc>
        </function>
        <function name="is_unspecified" exception-spec="noexcept" id="ogO/p3Rsy76ZR5BBjd+JT5p9mAI=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="265"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is unspecified</text>
            </brief>
            <para>
              <text>The address 0:0:0:0:0:0:0:0 is called the unspecified address. It indicates the absence of an address.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.2">2.5.2. The Unspecified Address (rfc4291)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the address is unspecified</text>
            </returns>
          </doc>
        </function>
        <function name="is_v4_mapped" exception-spec="noexcept" id="KPFd8cjF5Ss9pYOOq8WhES+hzjA=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="296"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the address is a mapped IPv4 address</text>
            </brief>
            <para>
              <text>This address type is used to represent the addresses of IPv4 nodes as IPv6 addresses.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2">2.5.5.2. IPv4-Mapped IPv6 Address (rfc4291)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the address is a mapped IPv4 address</text>
            </returns>
          </doc>
        </function>
        <function name="to_buffer" id="i3fY28R+qnkP8zKn2cOQrWnjNWo=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="247"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <param name="dest">
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
          </param>
          <param name="dest_size">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Write a dotted decimal string representing the address to a buffer</text>
            </brief>
            <para>
              <text>The resulting buffer is not null-terminated.</text>
            </para>
            <returns>
              <text>The formatted string</text>
            </returns>
            <param name="dest">
              <text>The buffer in which to write, which must have at least </text>
              <mono>dest_size</mono>
              <text> space.</text>
            </param>
            <param name="dest_size">
              <text>The size of the output buffer.</text>
            </param>
            <throws>
              <mono>dest_size &lt; ipv6_address::max_str_len</mono>
            </throws>
          </doc>
        </function>
        <function name="to_bytes" exception-spec="noexcept" id="ImUwdZB8YlRRGBoT4IIxXUe/wd8=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="177" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="3HLniRaTZARS/qsIh1WH0IPNx7E=" name="bytes_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the address as bytes, in network byte order</text>
            </brief>
            <returns>
              <text>The address as an array of bytes.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="to_string" id="2zV4QmjxJ0lPqiBQDYB3ewBXEtk=">
            <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="224" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the address as a string.</text>
              </brief>
              <para>
                <text>The returned string does not contain surrounding square brackets.</text>
              </para>
              <para>
                <text>When called with no arguments, the return type is </text>
                <mono>std::string</mono>
                <text>. Otherwise, the return type and style of output is determined by which string token is passed.</text>
              </para>
              <head>Example</head>
              <code>
                <text>ipv6_address::bytes_type b = {{
        0, 1, 0, 2, 0, 3, 0, 4,
        0, 5, 0, 6, 0, 7, 0, 8 }};
ipv6_address a(b);
assert(a.to_string() == &quot;1:2:3:4:5:6:7:8&quot;);
assert( ipv4_address(0x01020304).to_string() == &quot;1.2.3.4&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.2">2.2. Text Representation of Addresses (rfc4291)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The return type of the string token. If the token parameter is omitted, then a new </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the function return type is the result type of the token.</text>
              </returns>
              <param name="token">
                <text>An optional string token.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="loopback" exception-spec="noexcept" id="01VFEJ5nUH+9Q1IRe+r7pqG6OY8=">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="342"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return an address object that represents the loopback address</text>
            </brief>
            <para>
              <text>The unicast address 0:0:0:0:0:0:0:1 is called the loopback address. It may be used by a node to send an IPv6 packet to itself.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.3">2.5.3. The Loopback Address (rfc4291)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The loopback address.</text>
            </returns>
          </doc>
        </function>
        <variable name="max_str_len" id="9qVxLX0gbXaA+Qu5TJlcZdIdmd8=" default="49">
          <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="79" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>The number of characters in the longest possible IPv6 string.</text>
            </brief>
            <para>
              <text>The longest IPv6 address is:</text>
            </para>
            <code>
              <text>ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff</text>
            </code>
            <see>
              <reference id="i3fY28R+qnkP8zKn2cOQrWnjNWo=">to_buffer</reference>
              <text>.</text>
            </see>
          </doc>
        </variable>
      </class>
      <struct name="no_value_t" id="51rV2xfhRV96h9L23+q8lPiw4x8=">
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="30" class="def"/>
        <file short-path="boost/url/detail/optional_string.hpp" source-path="include/boost/url/detail/optional_string.hpp" line="20"/>
        <doc>
          <brief>
            <text>The type of </text>
            <reference id="INQ2ouuVlRY3LsAsb8F4jYk7wBA=">no_value</reference>
          </brief>
        </doc>
      </struct>
      <struct name="param" id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="75" class="def"/>
        <doc>
          <brief>
            <text>A query parameter</text>
          </brief>
          <para>
            <text>Objects of this type represent a single key and value pair in a query string where a key is always present and may be empty, while the presence of a value is indicated by </text>
            <reference id="m6PwaZFpoqvv4Zklub5FwD4kMNU=">has_value</reference>
            <text> equal to true. An empty value is distinct from no value.</text>
          </para>
          <para>
            <text>Depending on where the object was obtained, the strings may or may not contain percent escapes.</text>
          </para>
          <para>
            <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
            <text>, </text>
            <reference id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">param_pct_view</reference>
            <text>.</text>
          </see>
        </doc>
        <function class="constructor" name="param" id="m31qeAg+a+7PPxMDmwQbII+5IKk=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="124" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed query parameters have an empty key and no value.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param qp;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == &quot;&quot; &amp;&amp; this-&gt;value == &quot;&quot; &amp;&amp; this-&gt;has_value == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="param" id="39skGZPf1jMIho6Qkxv0xCLsZFE=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="174" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Upon construction, this becomes a copy of </text>
              <mono>other</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == other.key &amp;&amp; this-&gt;value == other.value &amp;&amp; this-&gt;has_value == other.has_value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.key.size() + other.value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The object to construct from.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="param" exception-spec="noexcept" id="eI2QornVUnf4Eq3LH5m7TUwIS4o=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="142" class="def"/>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Upon construction, this acquires ownership of the members of other via move construction. The moved from object is as if default constructed.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The object to construct from.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="OptionalString" class="type"/>
          <function class="constructor" name="param" id="usV8KIxAJDuXi0Vk+raUQOmujmo=">
            <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="283" class="def"/>
            <param name="key">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="value">
              <type class="lvalue-reference">
                <pointee-type name="OptionalString" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This constructs a parameter with a key and value.</text>
              </para>
              <para>
                <text>No validation is performed on the strings. Ownership of the key and value is acquired by making copies.</text>
              </para>
              <head>Example</head>
              <code>
                <text>param qp( &quot;key&quot;, &quot;value&quot; );</text>
              </code>
              <code>
                <text>param qp( &quot;key&quot;, optional&lt;core::string_view&gt;(&quot;value&quot;) );</text>
              </code>
              <code>
                <text>param qp( &quot;key&quot;, boost::none );</text>
              </code>
              <code>
                <text>param qp( &quot;key&quot;, nullptr );</text>
              </code>
              <code>
                <text>param qp( &quot;key&quot;, no_value );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;key == key &amp;&amp; this-&gt;value == value &amp;&amp; this-&gt;has_value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>key.size() + value.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <param name="key">
                <text>The key to set.</text>
              </param>
              <param name="value">
                <text>The value to set.</text>
              </param>
              <tparam name="OptionalString">
                <text>An optional string type, such as </text>
                <mono>core::string_view</mono>
                <text>, </text>
                <mono>std::nullptr</mono>
                <text>, </text>
                <reference id="51rV2xfhRV96h9L23+q8lPiw4x8=">no_value_t</reference>
                <text>, or </text>
                <mono>optional&lt;core::string_view&gt;</mono>
                <text>.</text>
              </tparam>
            </doc>
          </function>
        </template>
        <function class="constructor" name="param" exception-spec="noexcept" id="okb99+iEelSdg117LuwoY8LP16w=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="356" class="def"/>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="value">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="has_value">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Aggregate construction</text>
            </brief>
            <param name="key">
              <text>The key to set.</text>
            </param>
            <param name="value">
              <text>The value to set.</text>
            </param>
            <param name="has_value">
              <text>True if a value is present.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="zfGeu0K1/F+mX0XzUpds0ZSFzfM=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="229" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>Upon assignment, this becomes a copy of </text>
              <mono>other</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == other.key &amp;&amp; this-&gt;value == other.value &amp;&amp; this-&gt;has_value == other.has_value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.key.size() + other.value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The object to assign from.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" exception-spec="noexcept" id="s+7WqEnccxgNiV6x5Kd112RoZ2g=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="194" class="def"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </return>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>Upon assignment, this acquires ownership of the members of other via move assignment. The moved from object is as if default constructed.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The object to assign from.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="NFsUyybYjDW1e6c+YNVvNNhysqg=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="976" class="def"/>
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="332"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The members of </text>
              <mono>other</mono>
              <text> are copied, re-using already existing string capacity.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == other.key &amp;&amp; this-&gt;value == other.value &amp;&amp; this-&gt;has_value == other.has_value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.key.size() + other.value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The parameter to copy.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="yzzq+JDcBEA/hUXXkuwHJENlGnE=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="952" class="def"/>
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="310"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The members of </text>
              <mono>other</mono>
              <text> are copied, re-using already existing string capacity.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == other.key &amp;&amp; this-&gt;value == other.value &amp;&amp; this-&gt;has_value == other.has_value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.key.size() + other.value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The parameter to copy.</text>
            </param>
          </doc>
        </function>
        <function name="operator-&gt;" exception-spec="noexcept" id="HG2dqGDFjgWJE2OkgOAoRAs3puo=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="344" class="def"/>
          <attr id="operator" name="ptr" value="41"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Arrow support</text>
            </brief>
            <para>
              <text>This operator returns the address of the object so that it can be used in pointer contexts.</text>
            </para>
            <returns>
              <text>A pointer to the object.</text>
            </returns>
          </doc>
        </function>
        <variable name="has_value" id="m6PwaZFpoqvv4Zklub5FwD4kMNU=" default="false">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="101"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if a value is present</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <mono>has_value == true</mono>
              <text>. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
        <variable name="key" id="0dpgjf96RsW8NPBIyoLJHOaKlxQ=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="85"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The key</text>
            </brief>
            <para>
              <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
            </para>
          </doc>
        </variable>
        <variable name="value" id="LWUlaPLa2eFsggicMKMN/EabI44=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="93"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <reference id="m6PwaZFpoqvv4Zklub5FwD4kMNU=">has_value</reference>
              <text> equal to true. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
      </struct>
      <struct name="param_pct_view" id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="674" class="def"/>
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="24"/>
        <doc>
          <brief>
            <text>A view of a percent-encoded query parameter</text>
          </brief>
          <para>
            <text>Objects of this type represent a single key and value pair in a query string where a key is always present and may be empty, while the presence of a value is indicated by </text>
            <reference id="rmK2qEC9xNfHnl1z55UZ4m4mQkM=">has_value</reference>
            <text> equal to true. An empty value is distinct from no value.</text>
          </para>
          <para>
            <text>The strings may have percent escapes, and offer an additional invariant: they never contain an invalid percent-encoding.</text>
          </para>
          <para>
            <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
          </para>
          <para>
            <text>Keys and values in this object reference external character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
            <text>, </text>
            <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
            <text>.</text>
          </see>
        </doc>
        <function class="constructor" name="param_pct_view" id="Di79WdN/8AhKxcm8BbbzQnxTEx4=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="725" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed query parameters have an empty key and no value.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param_pct_view qp;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == &quot;&quot; &amp;&amp; this-&gt;value == &quot;&quot; &amp;&amp; this-&gt;has_value == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="param_pct_view" explicit-spec="explicit" id="N7W4Sl+nozJV0loY9It6DjN1YDg=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="855" class="def"/>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construction</text>
            </brief>
            <para>
              <text>This converts a param which may contain unvalidated percent-escapes into a param whose key and value are guaranteed to contain strings with no invalid percent-escapes, otherwise an exception is thrown.</text>
            </para>
            <para>
              <text>The new key and value reference the same corresponding underlying character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param_pct_view qp( param_view( &quot;key&quot;, &quot;value&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>key.size() + value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <param name="p">
              <text>The param to construct from.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> or </text>
              <mono>value</mono>
              <text> contains an invalid percent escape.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="param_pct_view" exception-spec="noexcept" id="6GAN49c4bX2HIjELHwtLSHta+n4=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="762" class="def"/>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="value">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This constructs a parameter with a key and value, which may both contain percent escapes. The new key and value reference the same corresponding underlying character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param_pct_view qp( &quot;key&quot;, &quot;value&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key.data() == key.data() &amp;&amp; this-&gt;value.data() == value.data() &amp;&amp; this-&gt;has_value == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>key.size() + value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <param name="key">
              <text>The key to set.</text>
            </param>
            <param name="value">
              <text>The value to set.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> or </text>
              <mono>value</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="OptionalString" class="type"/>
          <function class="constructor" name="param_pct_view" id="XX0MaMoegWB2X0gtPEZLHdh0dEY=">
            <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="814" class="def"/>
            <param name="key">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <param name="value">
              <type class="lvalue-reference">
                <pointee-type name="OptionalString" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This constructs a parameter with a key and optional value, which may both contain percent escapes.</text>
              </para>
              <para>
                <text>The new key and value reference the same corresponding underlying character buffers.</text>
              </para>
              <para>
                <text>Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
              </para>
              <head>Example</head>
              <code>
                <text>param_pct_view qp( &quot;key&quot;, optional&lt;core::string_view&gt;(&quot;value&quot;) );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;key.data() == key.data() &amp;&amp; this-&gt;value-&gt;data() == value-&gt;data() &amp;&amp; this-&gt;has_value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>key.size() + value-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>A param object</text>
              </returns>
              <param name="key">
                <text>The key to set.</text>
              </param>
              <param name="value">
                <text>The optional value to set.</text>
              </param>
              <tparam name="OptionalString">
                <text>An optional </text>
                <mono>core::string_view</mono>
                <text> type, such as </text>
                <mono>boost::optional&lt;core::string_view&gt;</mono>
                <text> or </text>
                <mono>std::optional&lt;core::string_view&gt;</mono>
                <text>.</text>
              </tparam>
              <throws>
                <mono>key</mono>
                <text> or </text>
                <mono>value</mono>
                <text> contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function class="constructor" name="param_pct_view" exception-spec="noexcept" id="IuJneRMhurFJcPnj8ZjmDfETSmc=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="929" class="def"/>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="value">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="has_value">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Aggregate construction</text>
            </brief>
            <param name="key">
              <text>The key</text>
            </param>
            <param name="value">
              <text>The value</text>
            </param>
            <param name="has_value">
              <text>True if a value is present</text>
            </param>
          </doc>
        </function>
        <function name="operator-&gt;" exception-spec="noexcept" id="CdHMmHQfPjNS3AePE+tI+GtTRjA=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="917" class="def"/>
          <attr id="operator" name="ptr" value="41"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Arrow support</text>
            </brief>
            <para>
              <text>This operator returns the address of the object so that it can be used in pointer contexts.</text>
            </para>
            <returns>
              <text>A pointer to this object</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator param" explicit-spec="explicit" id="AZd6M/W3LSYytCpQVhHudMjCzdM=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="881" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <para>
              <text>This function performs a conversion from a reference-like query parameter to one retaining ownership of the strings by making a copy.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;key.size() + this-&gt;value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A param object</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator param_view" exception-spec="noexcept" id="xdQEoGMl95niJ7mohiOA2sXYuA8=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="902" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion to param_view</text>
            </brief>
            <para>
              <text>This function performs a conversion from a pct_string_view query parameter to one using a simple string_view.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A param_view object</text>
            </returns>
          </doc>
        </function>
        <variable name="has_value" id="rmK2qEC9xNfHnl1z55UZ4m4mQkM=" default="false">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="700"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if a value is present</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <mono>has_value == true</mono>
              <text>. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
        <variable name="key" id="owa9c8Ec+TQH5zkJ5xLQlW3RC1g=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="684"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The key</text>
            </brief>
            <para>
              <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
            </para>
          </doc>
        </variable>
        <variable name="value" id="iU+8e6+V5sZG1u7SJEiC7m9XX7Y=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="692"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The value</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <reference id="rmK2qEC9xNfHnl1z55UZ4m4mQkM=">has_value</reference>
              <text> equal to true. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
      </struct>
      <struct name="param_view" id="C+IWBHRl3NluE4QVhoCkgb59VAc=">
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="427" class="def"/>
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="25"/>
        <doc>
          <brief>
            <text>A view of a query parameter</text>
          </brief>
          <para>
            <text>Objects of this type represent a single key and value pair in a query string where a key is always present and may be empty, while the presence of a value is indicated by </text>
            <reference id="5qdp3uhNRJQmOCy91Ie1r9Wod8c=">has_value</reference>
            <text> equal to true. An empty value is distinct from no value.</text>
          </para>
          <para>
            <text>Depending on where the object was obtained, the strings may or may not contain percent escapes. Some functions and objects might expect encoded strings in this view, while others expect decoded strings. The caller should be aware of the context in which the object will be used.</text>
          </para>
          <para>
            <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
          </para>
          <para>
            <text>Keys and values in this object reference external character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
            <text>, </text>
            <reference id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">param_pct_view</reference>
            <text>.</text>
          </see>
        </doc>
        <function class="constructor" name="param_view" id="eq0SF4UQaNBZbYdivlCWsVA5Lc4=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="478" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed query parameters have an empty key and no value.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param_view qp;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == &quot;&quot; &amp;&amp; this-&gt;value == &quot;&quot; &amp;&amp; this-&gt;has_value == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="param_view" exception-spec="noexcept" id="fj5gN0ldQtYkAUvxIrujcFVadCA=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="555" class="def"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs a param which references the character buffers representing the key and value in another container. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>param qp( &quot;key&quot;, &quot;value&quot; );
param_view qpv( qp );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;key == key &amp;&amp; this-&gt;value == value &amp;&amp; this-&gt;has_value == other.has_value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The param to reference</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="OptionalString" class="type"/>
          <function class="constructor" name="param_view" exception-spec="noexcept" id="GRgc3qbuxNz2lViEWv9ClZsU0Lc=">
            <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="517" class="def"/>
            <param name="key">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <param name="value">
              <type class="lvalue-reference">
                <pointee-type name="OptionalString" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This constructs a parameter with a key and value. No validation is performed on the strings. The new key and value reference the same corresponding underlying character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced.</text>
              </para>
              <head>Example</head>
              <code>
                <text>param_view qp( &quot;key&quot;, &quot;value&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;key.data() == key.data() &amp;&amp; this-&gt;value.data() == value.data() &amp;&amp; this-&gt;has_value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <param name="key">
                <text>The key to set.</text>
              </param>
              <param name="value">
                <text>The value to set.</text>
              </param>
              <tparam name="OptionalString">
                <text>An optional string type, such as </text>
                <mono>core::string_view</mono>
                <text>, </text>
                <mono>std::nullptr</mono>
                <text>, </text>
                <reference id="51rV2xfhRV96h9L23+q8lPiw4x8=">no_value_t</reference>
                <text>, or </text>
                <mono>optional&lt;core::string_view&gt;</mono>
                <text>.</text>
              </tparam>
            </doc>
          </function>
        </template>
        <function class="constructor" name="param_view" exception-spec="noexcept" id="NSR96oc02lbW4sL/WGkyIWtbgKg=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="607" class="def"/>
          <param name="key_">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="value_">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="has_value_">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Aggregate construction</text>
            </brief>
            <param name="key_">
              <text>The key to set.</text>
            </param>
            <param name="value_">
              <text>The value to set.</text>
            </param>
            <param name="has_value_">
              <text>True if a value is present.</text>
            </param>
          </doc>
        </function>
        <function name="operator-&gt;" exception-spec="noexcept" id="SyeSz+EOTfJojbhMH5e929glZME=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="595" class="def"/>
          <attr id="operator" name="ptr" value="41"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Arrow support</text>
            </brief>
            <para>
              <text>This operator returns the address of the object so that it can be used in pointer contexts.</text>
            </para>
            <returns>
              <text>A pointer to the object.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator param" explicit-spec="explicit" id="j4zn5vmDnlIInrMNdQvhbH7pd8A=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="580" class="def"/>
          <return>
            <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <para>
              <text>This function performs a conversion from a reference-like query parameter to one retaining ownership of the strings by making a copy. No validation is performed on the strings.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;key.size() + this-&gt;value.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A new query parameter.</text>
            </returns>
          </doc>
        </function>
        <variable name="has_value" id="5qdp3uhNRJQmOCy91Ie1r9Wod8c=" default="false">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="453"/>
          <type name="bool"/>
          <doc>
            <brief>
              <text>True if a value is present</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <mono>has_value == true</mono>
              <text>. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
        <variable name="key" id="0w9Q3dEVwZ2B+pha3LDXacGaN8U=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="437"/>
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          <doc>
            <brief>
              <text>The key</text>
            </brief>
            <para>
              <text>For most usages, key comparisons are case-sensitive and duplicate keys in a query are possible. However, it is the authority that has final control over how the query is interpreted.</text>
            </para>
          </doc>
        </variable>
        <variable name="value" id="jSR+FziEeMh2Ue2Gpy/FfW7Bdl8=">
          <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="445"/>
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          <doc>
            <brief>
              <text>The value</text>
            </brief>
            <para>
              <text>The presence of a value is indicated by </text>
              <reference id="5qdp3uhNRJQmOCy91Ie1r9Wod8c=">has_value</reference>
              <text> equal to true. An empty value is distinct from no value.</text>
            </para>
          </doc>
        </variable>
      </struct>
      <class name="params_base" id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
        <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="48" class="def"/>
        <friend id="DzqMpaJX2O25vPFxEN5EDTyU6uw=">
          <befriended id="DzqMpaJX2O25vPFxEN5EDTyU6uw="/>
        </friend>
        <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
          <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for query parameter containers</text>
          </brief>
          <para>
            <text>The library uses this base class to provide common member functions for containers of query parameters.</text>
          </para>
          <para>
            <text>This class should not be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>params_ref</reference>
            </listitem>
            <listitem>
              <reference>params_view</reference>
            </listitem>
            <listitem>
              <reference>params_encoded_ref</reference>
            </listitem>
            <listitem>
              <reference>params_encoded_view</reference>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="4XRIDzJtD8YcNf6ybgP1JlmdPbE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="100"/>
          <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="/aPvkkBZhzgeMb2UCNaJ1s5c6oQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="129"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="4jo6j51QPa7nfAiEWAM6LJc4fLs=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="137"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="8Hg/5b5RDYgIk/T6aP0tPj0HbSc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="126"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="cFqtE5widJnnA8qwGOBnkhkdR6Y=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="133"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="/wVpdYewE+NKvN60EGcgNiIZ+Mc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="116"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="maJcbp53hfhQNovBi8QEK/+HTzw=">
          <file short-path="boost/url/impl/params_base.hpp" source-path="include/boost/url/impl/params_base.hpp" line="22" class="def"/>
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="97"/>
          <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
            <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
          </friend>
          <friend id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
            <befriended id="paRP7A1SOQlKcnfXhxL4FgbVXKs="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </class>
        <function name="begin" exception-spec="noexcept" id="rgFjw9W6rMjgEYkGOVMDiLJIIdE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="233"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="cpczYPJifQzreeaLMlFMrIk8geU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="184"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().buffer() == &quot;?first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="+m1VjI0xtgykFmvRxecqZkXJBNg=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="281"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="SUQ73EvVipRYcJ2Sg24T8d60qeQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="VQ4Gk4oWz8OorSDPtJoAWpHsFaI=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="202"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="NYG2/rgQQuH/CSw2qObuDUB3DYo=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="246"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="mSdbytykajruHQy1W8iyrWbbOmM=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="362"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;First&quot;, ignore_case )).value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Q/NxQl0WFzXMzvRmJDH5BghXp5M=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="407"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="from">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find( &quot;first&quot; ) != u.params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="T7jam5dZRMsS/ZHAEHdP05Fqlug=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="448"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find_last( &quot;last&quot; )).value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="2y2ewlvaEuZkWtKX4p7xlBO2wXU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="494"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="before">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find_last( &quot;last&quot; ) != u.params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="u/w33vX8w/yA/9Gl176lDHdQs4k=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="220"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="JAc718f//bzvETv8VNPf4ujJ2G8=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="params_encoded_base" id="2+L1/+BrjUzoccWPIYkGu108y1I=">
        <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="38" class="def"/>
        <friend id="0nSfM4mK92fIx58KtzdWGiHuq2w=">
          <befriended id="0nSfM4mK92fIx58KtzdWGiHuq2w="/>
        </friend>
        <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
          <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for containers</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common member functions for containers. This cannot be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>params_ref</reference>
            </listitem>
            <listitem>
              <reference>params_view</reference>
            </listitem>
            <listitem>
              <reference>params_encoded_ref</reference>
            </listitem>
            <listitem>
              <reference>params_encoded_view</reference>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="XJpUUNCpigJ1xkT7ZTlbU72H/Ak=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="80"/>
          <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="dZWEqr9OGQvjwxniXvQD5gJgpjs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="109"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="Jgooe8CMHSLBI54qjRb0o6d/8/o=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="117"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="BU4ImK4QmuraTcmiVgUZHD9EeSc=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="106"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="GqAV1Lhk5ZQyP+b5jBK+ATBZPKo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="113"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="TadRKN4c6SRe/Yk1CsRORJw1qkM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="96"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="77"/>
          <friend id="+mbgraIEKxYlGRnrtbl+juVak7Y=">
            <befriended id="+mbgraIEKxYlGRnrtbl+juVak7Y="/>
          </friend>
          <friend id="3b8LtWJdyf2AUFgD88j68/LgT7s=">
            <befriended id="3b8LtWJdyf2AUFgD88j68/LgT7s="/>
          </friend>
          <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
            <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
          </friend>
          <friend id="2+L1/+BrjUzoccWPIYkGu108y1I=">
            <befriended id="2+L1/+BrjUzoccWPIYkGu108y1I="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function name="begin" exception-spec="noexcept" id="H11d1XIdchNVENPAXFI29FSpdmA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="226"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="pXB7x4tVHvcwWbxezFAda5sgdHI=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query corresponding to these params</text>
            </brief>
            <para>
              <text>This function returns the query string referenced by the container. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().buffer() == &quot;first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query string.</text>
            </returns>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="ytgJ9icra/4vSaD7yJY5ki4BrNY=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="278"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="dYTek2kRS43hktBruYZHns13CqM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="FAnUbM3orQ8EQ3bA6cM0MPKqnzs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="195"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).encoded_params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="MTKGTeb7OLB4syv3KjZV9NsdSuA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="239"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Oklu+7vHgxQ6cOEG4FHBmj+mMzo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="369"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find( &quot;First&quot;, ignore_case )-&gt;value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="BlQpocjN9pdc1/MZ4dbq8RLQlzM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="421"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="from">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find( &quot;first&quot; ) != u.encoded_params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="XVsgicnxdzp/0fDKXn/F2rEFNTs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="469"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find_last( &quot;last&quot; )-&gt;value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="0IIl26IWllZFiR+8ic5UAM5bg6A=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="516"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="before">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find_last( &quot;last&quot; ) != u.encoded_params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="zF7kAsctYJbzsEd/ye9VQDTlad8=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="213"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).encoded_params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="YhJEdM/9SyCZ1JSUhp09kwAEwsw=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="136" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="params_encoded_ref" id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
        <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="73" class="def"/>
        <base>
          <type id="2+L1/+BrjUzoccWPIYkGu108y1I=" name="params_encoded_base"/>
        </base>
        <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
          <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing query parameters in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the query parameters as a bidirectional view of key value pairs.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original url. The caller is responsible for ensuring that the lifetime of the referenced url extends until it is no longer referenced.</text>
          </para>
          <para>
            <text>The view is modifiable; calling non-const members causes changes to the referenced url.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url u( &quot;?first=John&amp;last=Doe&quot; );

params_encoded_ref p = u.encoded_params();</text>
          </code>
          <para>
            <text>Strings produced when elements are returned have type </text>
            <reference id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">param_pct_view</reference>
            <text> and represent encoded strings. Strings passed to member functions may contain percent escapes, and throw exceptions on invalid inputs.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it. Modifications made through the container invalidate some iterators to the underlying character buffer:</text>
          </para>
          <unorderedlist>
            <listitem>
              <reference>append</reference>
              <text> : Only `end()`.</text>
            </listitem>
            <listitem>
              <reference>assign</reference>
              <text>, </text>
              <reference>clear</reference>
              <text>,        `operator=` : All params.</text>
            </listitem>
            <listitem>
              <reference>erase</reference>
              <text> : Erased params and all        params after (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>insert</reference>
              <text> : All params at or after        the insertion point (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>replace</reference>
              <text>, </text>
              <reference>set</reference>
              <text> : Modified        params and all params</text>
              <text>        after (including `end()`).</text>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="XJpUUNCpigJ1xkT7ZTlbU72H/Ak=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="80"/>
          <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="dZWEqr9OGQvjwxniXvQD5gJgpjs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="109"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="Jgooe8CMHSLBI54qjRb0o6d/8/o=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="117"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="BU4ImK4QmuraTcmiVgUZHD9EeSc=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="106"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="GqAV1Lhk5ZQyP+b5jBK+ATBZPKo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="113"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="TadRKN4c6SRe/Yk1CsRORJw1qkM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="96"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="77"/>
          <friend id="+mbgraIEKxYlGRnrtbl+juVak7Y=">
            <befriended id="+mbgraIEKxYlGRnrtbl+juVak7Y="/>
          </friend>
          <friend id="3b8LtWJdyf2AUFgD88j68/LgT7s=">
            <befriended id="3b8LtWJdyf2AUFgD88j68/LgT7s="/>
          </friend>
          <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
            <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
          </friend>
          <friend id="2+L1/+BrjUzoccWPIYkGu108y1I=">
            <befriended id="2+L1/+BrjUzoccWPIYkGu108y1I="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="params_encoded_ref" id="GfFxsJ7oaUsWi2Atb9cDUj0e/+o=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="112" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same url. Ownership is not transferred; the caller is responsible for ensuring the lifetime of the url extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>&amp;this-&gt;url() == &amp;other.url();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="KeK0ndlDZktv6kEdPIKUbI+NDTM=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="143"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The previous contents of this are replaced by the contents of `other.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by </text>
              <mono>other</mono>
              <text> must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="other">
              <text>The params to assign.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="Peyrb4LuZH0F5ToJdmzPIH4CGcI=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="181"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
            </type>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, the previous contents of the query parameters are replaced by the contents of the initializer-list.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Preconditions</head>
            <para>
              <text>None of character buffers referenced by </text>
              <mono>init</mono>
              <text> may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( init.begin(), init.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
            <throws>
              <mono>init</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="append" id="6QkRgGSOrlBj9w3oCsWoh8eKStA=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="402"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Append params</text>
            </brief>
            <para>
              <text>This function appends the params in an </text>
              <italic>initializer-list</italic>
              <text> to the view.</text>
            </para>
            <para>
              <text>The </text>
              <mono>end()</mono>
              <text> iterator is invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.encoded_params().append({ {&quot;first&quot;, &quot;John&quot;}, {&quot;last&quot;, &quot;Doe&quot;} });</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the first new element.</text>
            </returns>
            <param name="init">
              <text>The list of params to append.</text>
            </param>
            <throws>
              <mono>init</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="append" id="cUWKKuKzmLs4Ewu9K8KiczTvi2o=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="368"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Append params</text>
            </brief>
            <para>
              <text>This function appends a param to the view.</text>
            </para>
            <para>
              <text>The </text>
              <mono>end()</mono>
              <text> iterator is invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.encoded_params().append( { &quot;first&quot;, &quot;John&quot; } );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the new element.</text>
            </returns>
            <param name="p">
              <text>The param to append.</text>
            </param>
            <throws>
              <mono>p</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="append" id="itLgaeHmpBVULdah7dilIs38xrA=">
            <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="442"/>
            <return>
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </return>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Append params</text>
              </brief>
              <para>
                <text>This function appends a range of params to the view.</text>
              </para>
              <para>
                <text>The </text>
                <mono>end()</mono>
                <text> iterator is invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_pct_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>An iterator to the first new element.</text>
              </returns>
              <returns>
                <text>An iterator to the first new element.</text>
              </returns>
              <param name="first">
                <text>The first element to append.</text>
              </param>
              <param name="last">
                <text>One past the last element to append.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="assign" id="DKYH7OjwbXYGNBDRivSladQ8znE=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="295"/>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assign params</text>
            </brief>
            <para>
              <text>This function replaces the entire contents of the view with the params in the </text>
              <italic>initializer-list</italic>
              <text>.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.encoded_params().assign({ { &quot;first&quot;, &quot;John&quot; }, { &quot;last&quot;, &quot;Doe&quot; } });</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
            <throws>
              <mono>init</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="assign" id="cWOBrJCopQJpvPvUKrg66sU2cKw=">
            <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="333"/>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Assign params</text>
              </brief>
              <para>
                <text>This function replaces the entire contents of the view with the params in the range.</text>
              </para>
              <para>
                <text>All iterators are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_pct_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in the size of the range.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <param name="first">
                <text>The first element to assign.</text>
              </param>
              <param name="last">
                <text>One past the last element to assign.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="begin" exception-spec="noexcept" id="H11d1XIdchNVENPAXFI29FSpdmA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="226"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="pXB7x4tVHvcwWbxezFAda5sgdHI=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query corresponding to these params</text>
            </brief>
            <para>
              <text>This function returns the query string referenced by the container. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().buffer() == &quot;first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query string.</text>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="k2dlYXL3mSTiVHHuz/hORJcr2ek=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="256"/>
          <doc>
            <brief>
              <text>Clear the contents of the container</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;url().remove_query();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true &amp;&amp; this-&gt;url().has_query() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="ytgJ9icra/4vSaD7yJY5ki4BrNY=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="278"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="dYTek2kRS43hktBruYZHns13CqM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="FAnUbM3orQ8EQ3bA6cM0MPKqnzs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="195"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).encoded_params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="MTKGTeb7OLB4syv3KjZV9NsdSuA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="239"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="ihRZyyN6EfxpZfwp7BbiY5mm4Po=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="605"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase params</text>
            </brief>
            <para>
              <text>This function removes an element from the container.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

params_encoded_ref::iterator it = u.encoded_params().erase( u.encoded_params().begin() );

assert( u.encoded_query() == &quot;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="tDEaV9JBSGxyAyqNR92gfnZMeeA=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="630"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="first">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="last">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase params</text>
            </brief>
            <para>
              <text>This function removes a range of params from the container.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>first</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed range.</text>
            </returns>
            <returns>
              <text>An iterator to one past the removed range.</text>
            </returns>
            <param name="first">
              <text>The first element to remove.</text>
            </param>
            <param name="last">
              <text>One past the last element to remove.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="AOrklUyQt6Ym1GagAEiRtUS81Vo=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="666"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Erase params</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;count( key, ic ) == 0</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>The number of params removed from the container.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Oklu+7vHgxQ6cOEG4FHBmj+mMzo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="369"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find( &quot;First&quot;, ignore_case )-&gt;value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="BlQpocjN9pdc1/MZ4dbq8RLQlzM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="421"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="from">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find( &quot;first&quot; ) != u.encoded_params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="XVsgicnxdzp/0fDKXn/F2rEFNTs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="469"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find_last( &quot;last&quot; )-&gt;value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="0IIl26IWllZFiR+8ic5UAM5bg6A=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="516"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="before">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find_last( &quot;last&quot; ) != u.encoded_params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="insert" id="tMheSUrnUYvPC86oW//XVnzWbAM=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="519"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="before">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Insert params</text>
            </brief>
            <para>
              <text>This function inserts the params in an </text>
              <italic>initializer-list</italic>
              <text> before the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or </text>
              <mono>before</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the element is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="init">
              <text>The list of params to insert.</text>
            </param>
            <throws>
              <mono>init</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="insert" id="PtbdIr+62ULTxu/fsxHxGDuYSqo=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="478"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="before">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Insert params</text>
            </brief>
            <para>
              <text>This function inserts a param before the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the inserted element.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the param is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="p">
              <text>The param to insert.</text>
            </param>
            <throws>
              <mono>p</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="insert" id="UmIU95+V7SOzXxA2IhPZz/1JYso=">
            <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="567"/>
            <return>
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </return>
            <param name="before">
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Insert params</text>
              </brief>
              <para>
                <text>This function inserts a range of params before the specified position.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>before</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_pct_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>An iterator to the first element inserted, or </text>
                <mono>before</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <returns>
                <text>An iterator to the first element inserted.</text>
              </returns>
              <param name="before">
                <text>An iterator before which the element is inserted. This may be equal to </text>
                <mono>end()</mono>
                <text>.</text>
              </param>
              <param name="first">
                <text>The first element to insert.</text>
              </param>
              <param name="last">
                <text>One past the last element to insert.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="replace" id="8oufJgtT98mojZVb+QU8zehwHTw=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="714"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Replace params</text>
            </brief>
            <para>
              <text>This function replaces the contents of the element at </text>
              <mono>pos</mono>
              <text> with the specified param.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings passed in must not come from the element being replaced, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

u.encoded_params().replace( u.encoded_params().begin(), { &quot;title&quot;, &quot;Mr&quot; });

assert( u.encoded_query() == &quot;title=Mr&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
            <param name="p">
              <text>The param to assign.</text>
            </param>
            <throws>
              <mono>p</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="replace" id="hlARmWRoMKFnzL6swJay7BuFxvA=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="754"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="from">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="to">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Replace params</text>
            </brief>
            <para>
              <text>This function replaces a range of params with the params in an </text>
              <italic>initializer-list</italic>
              <text>.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or one past </text>
              <mono>to</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="from,to">
              <text>The range of params to replace.</text>
            </param>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
            <throws>
              <mono>init</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="replace" id="b9I+/qZxIyE66HAZkrDeQo+Amgg=">
            <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="802"/>
            <return>
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </return>
            <param name="from">
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </param>
            <param name="to">
              <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Replace params</text>
              </brief>
              <para>
                <text>This function replaces a range of params with a range of params.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>from</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_pct_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>An iterator to the first element inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <returns>
                <text>An iterator to the first element inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <param name="from">
                <text>The first element to replace.</text>
              </param>
              <param name="to">
                <text>One past the last element to replace.</text>
              </param>
              <param name="first">
                <text>The first element to insert.</text>
              </param>
              <param name="last">
                <text>One past the last element to insert.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="set" id="2b4N/IEoLB/FO/023k5bqZjt6Pk=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="889"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="value">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set a value</text>
            </brief>
            <para>
              <text>This function replaces the value of an element at the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The string passed in must not come from the element being replaced, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?id=42&amp;id=69&quot; );

u.encoded_params().set( u.encoded_params().begin(), &quot;none&quot; );

assert( u.encoded_query() == &quot;id=none&amp;id=69&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
            <param name="value">
              <text>The value to assign. The empty string still counts as a value. That is, </text>
              <mono>has_value</mono>
              <text> for the element is true.</text>
            </param>
            <throws>
              <mono>value</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="set" id="fC9Q+OHMANroVBOY/O2BIrt2iNI=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="961"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="value">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Set a value</text>
            </brief>
            <para>
              <text>This function performs one of two actions depending on the value of </text>
              <mono>this-&gt;contains( key, ic )</mono>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If key is contained in the view</text>
                <text>        then one of the matching params has</text>
                <text>        its value changed to the specified value.</text>
                <text>        The remaining params with a matching</text>
                <text>        key are erased. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If `key` is not contained in the</text>
                <text>        view, then the function apppends the</text>
                <text>        param `{ key, value }`.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings passed in must not come from the element being replaced, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?id=42&amp;id=69&quot; );

u.encoded_params().set( &quot;id&quot;, &quot;none&quot; );

assert( u.encoded_params().count( &quot;id&quot; ) == 1 );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;count( key, ic ) == 1 &amp;&amp; this-&gt;find( key, ic )-&gt;value == value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the appended or modified element.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="value">
              <text>The value to assign. The empty string still counts as a value. That is, </text>
              <mono>has_value</mono>
              <text> for the element is true.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> or </text>
              <mono>value</mono>
              <text> contain an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="zF7kAsctYJbzsEd/ye9VQDTlad8=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="213"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).encoded_params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function name="unset" exception-spec="noexcept" id="4DuZaumhHSqti6UuC3Ut+Z6NSqo=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="842"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Remove the value on an element</text>
            </brief>
            <para>
              <text>This function removes the value of an element at the specified position. After the call returns, </text>
              <mono>has_value</mono>
              <text> for the element is false.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

u.encoded_params().unset( u.encoded_params().begin() );

assert( u.encoded_query() == &quot;first&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
          </doc>
        </function>
        <function name="url" exception-spec="noexcept" id="RbMrqKDUBMsQeBETnWQ7ufUzfpg=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="223" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the referenced url</text>
            </brief>
            <para>
              <text>This function returns the url referenced by the view.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?key=value&quot; );

assert( &amp;u.encoded_params().url() == &amp;u );</text>
            </code>
            <head>Exception Safety</head>
            <code>
              <text>Throws nothing.</text>
            </code>
            <returns>
              <text>A reference to the url.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator params_encoded_view" exception-spec="noexcept" id="4Bmj96upudccSNe5hQA3qbrOtOY=">
          <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="195"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A view of the params.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="YhJEdM/9SyCZ1JSUhp09kwAEwsw=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="136" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="params_encoded_view" id="0nSfM4mK92fIx58KtzdWGiHuq2w=">
        <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="58" class="def"/>
        <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="24"/>
        <base>
          <type id="2+L1/+BrjUzoccWPIYkGu108y1I=" name="params_encoded_base"/>
        </base>
        <friend id="uNT8hVd3FIORJnihg+axBbyOnBE=">
          <befriended id="uNT8hVd3FIORJnihg+axBbyOnBE="/>
        </friend>
        <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
          <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
        </friend>
        <friend id="DzqMpaJX2O25vPFxEN5EDTyU6uw=">
          <befriended id="DzqMpaJX2O25vPFxEN5EDTyU6uw="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing query parameters in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the query parameters as a bidirectional view of key/value pairs.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;?first=John&amp;last=Doe&quot; );

params_encoded_view p = u.encoded_params();</text>
          </code>
          <para>
            <text>Strings produced when elements are returned have type </text>
            <reference id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">param_pct_view</reference>
            <text> and represent encoded strings. Strings passed to member functions may contain percent escapes, and throw exceptions on invalid inputs.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it.</text>
          </para>
        </doc>
        <namespace-alias name="const_iterator" id="XJpUUNCpigJ1xkT7ZTlbU72H/Ak=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="80"/>
          <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="dZWEqr9OGQvjwxniXvQD5gJgpjs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="109"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="Jgooe8CMHSLBI54qjRb0o6d/8/o=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="117"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="BU4ImK4QmuraTcmiVgUZHD9EeSc=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="106"/>
          <type id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=" name="param_pct_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="GqAV1Lhk5ZQyP+b5jBK+ATBZPKo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="113"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="TadRKN4c6SRe/Yk1CsRORJw1qkM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="96"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="77"/>
          <friend id="+mbgraIEKxYlGRnrtbl+juVak7Y=">
            <befriended id="+mbgraIEKxYlGRnrtbl+juVak7Y="/>
          </friend>
          <friend id="3b8LtWJdyf2AUFgD88j68/LgT7s=">
            <befriended id="3b8LtWJdyf2AUFgD88j68/LgT7s="/>
          </friend>
          <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
            <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
          </friend>
          <friend id="2+L1/+BrjUzoccWPIYkGu108y1I=">
            <befriended id="2+L1/+BrjUzoccWPIYkGu108y1I="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="params_encoded_view" id="LejvgDggo/vR+pFyu/AlYsXpLaQ=">
          <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="91" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default-constructed params have zero elements.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view qp;</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return params_encoded_view( &quot;&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="params_encoded_view" id="a/y/9CSq2/5Q0GjRPaP5vlWjuPI=">
          <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="116" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction both views reference the same character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <param name="other">
              <text>The object to copy</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="params_encoded_view" id="y1I49n7xdADNaymdSPDs20JUyV0=">
          <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="171"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs params from a valid query parameter string, which can contain percent escapes. Unlike the parameters in URLs, the string passed here should not start with &quot;?&quot;. Upon construction, the view references the character buffer pointed to by </text>
              <mono>s</mono>
              <text>. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view qp( &quot;first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return parse_query( s ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )

query-param     = key [ &quot;=&quot; value ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid query parameter string.</text>
            </throws>
          </doc>
        </function>
        <function name="operator=" id="vLdk8N8yRTrTP1yBKiBB4xmgGxI=">
          <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="199" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="other">
              <text>The object to assign</text>
            </param>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="H11d1XIdchNVENPAXFI29FSpdmA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="226"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="pXB7x4tVHvcwWbxezFAda5sgdHI=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query corresponding to these params</text>
            </brief>
            <para>
              <text>This function returns the query string referenced by the container. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().buffer() == &quot;first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = query-param *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query string.</text>
            </returns>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="ytgJ9icra/4vSaD7yJY5ki4BrNY=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="278"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="dYTek2kRS43hktBruYZHns13CqM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="FAnUbM3orQ8EQ3bA6cM0MPKqnzs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="195"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).encoded_params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="MTKGTeb7OLB4syv3KjZV9NsdSuA=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="239"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Oklu+7vHgxQ6cOEG4FHBmj+mMzo=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="369"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find( &quot;First&quot;, ignore_case )-&gt;value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="BlQpocjN9pdc1/MZ4dbq8RLQlzM=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="421"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="from">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find( &quot;first&quot; ) != u.encoded_params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="XVsgicnxdzp/0fDKXn/F2rEFNTs=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="469"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).encoded_params().find_last( &quot;last&quot; )-&gt;value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
            <throws>
              <mono>key</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="0IIl26IWllZFiR+8ic5UAM5bg6A=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="516"/>
          <attr id="is-const"/>
          <return>
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </return>
          <param name="before">
            <type id="ZtVyiX/PxtD1ydy6wMFxWQ6zNWo=" name="iterator"/>
          </param>
          <param name="key">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.encoded_params().find_last( &quot;last&quot; ) != u.encoded_params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="zF7kAsctYJbzsEd/ye9VQDTlad8=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="213"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).encoded_params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator params_view" exception-spec="noexcept" id="PKsENmwPsWTiRP6EZEJnw3PnCJg=">
          <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="234"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <para>
              <text>This conversion returns a new view which references the same underlying character buffer, and whose iterators and members return ordinary strings with decoding applied to any percent escapes.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view qp = parse_path( &quot;/path/to/file.txt&quot; ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>params_view( *this ).buffer().data() == this-&gt;buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <text>A new view with percent escapes decoded.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="YhJEdM/9SyCZ1JSUhp09kwAEwsw=">
          <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="136" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="params_ref" id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
        <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="80" class="def"/>
        <base>
          <type id="paRP7A1SOQlKcnfXhxL4FgbVXKs=" name="params_base"/>
        </base>
        <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
          <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing query parameters in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the query parameters as a bidirectional view of key/value pairs. The view does not retain ownership of the elements and instead references the original url. The caller is responsible for ensuring that the lifetime of the referenced url extends until it is no longer referenced. The view is modifiable; calling non-const members causes changes to the referenced url.</text>
          </para>
          <para>
            <text>Percent escapes in strings returned when dereferencing iterators are automatically decoded. Reserved characters in strings supplied to modifier functions are automatically percent-escaped.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url u( &quot;?first=John&amp;last=Doe&quot; );

params_ref p = u.params();</text>
          </code>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it. Modifications made through the container invalidate some or all iterators:</text>
          </para>
          <unorderedlist>
            <listitem>
              <reference>append</reference>
              <text> : Only `end()`.</text>
            </listitem>
            <listitem>
              <reference>assign</reference>
              <text>, </text>
              <reference>clear</reference>
              <text>,        `operator=` : All elements.</text>
            </listitem>
            <listitem>
              <reference>erase</reference>
              <text> : Erased elements and all        elements after (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>insert</reference>
              <text> : All elements at or after        the insertion point (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>replace</reference>
              <text>, </text>
              <reference>set</reference>
              <text> : Modified        elements and all elements</text>
              <text>        after (including `end()`).</text>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="4XRIDzJtD8YcNf6ybgP1JlmdPbE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="100"/>
          <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="/aPvkkBZhzgeMb2UCNaJ1s5c6oQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="129"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="4jo6j51QPa7nfAiEWAM6LJc4fLs=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="137"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="8Hg/5b5RDYgIk/T6aP0tPj0HbSc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="126"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="cFqtE5widJnnA8qwGOBnkhkdR6Y=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="133"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="/wVpdYewE+NKvN60EGcgNiIZ+Mc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="116"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="maJcbp53hfhQNovBi8QEK/+HTzw=">
          <file short-path="boost/url/impl/params_base.hpp" source-path="include/boost/url/impl/params_base.hpp" line="22" class="def"/>
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="97"/>
          <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
            <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
          </friend>
          <friend id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
            <befriended id="paRP7A1SOQlKcnfXhxL4FgbVXKs="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="params_ref" id="sEFiwKk140EO8Nr99+hbevJSBAY=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="120" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same url. Ownership is not transferred; the caller is responsible for ensuring the lifetime of the url extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>&amp;this-&gt;url() == &amp;other.url()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="params_ref" exception-spec="noexcept" id="nMkYq7qSUKlxmHWVMHNJz50kvFE=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="153"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views will reference the same url but this instance will use the specified </text>
              <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
              <text> when the values are decoded.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the url extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>&amp;this-&gt;url() == &amp;other.url()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, </text>
              <mono>space_as_plus</mono>
              <text> is used.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="y7lcSqZgZM2dEqOvc9CWe1OF10c=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="185"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The previous contents of this are replaced by the contents of `other.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by </text>
              <mono>other</mono>
              <text> must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="other">
              <text>The params to assign.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="M5JVAM7+RTTSS2rASnsI5EUT3nE=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="216"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
            </type>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, the previous contents of the query parameters are replaced by the contents of the initializer-list.</text>
            </para>
            <head>Preconditions</head>
            <para>
              <text>None of character buffers referenced by </text>
              <mono>init</mono>
              <text> may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( init );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
          </doc>
        </function>
        <function name="append" id="fjlyWxUJQyQcMmoOTMLD7pArcvU=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="416"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Append elements</text>
            </brief>
            <para>
              <text>This function appends the params in an </text>
              <italic>initializer-list</italic>
              <text> to the view.</text>
            </para>
            <para>
              <text>The </text>
              <mono>end()</mono>
              <text> iterator is invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.params().append({ { &quot;first&quot;, &quot;John&quot; }, { &quot;last&quot;, &quot;Doe&quot; } });</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the first new element.</text>
            </returns>
            <param name="init">
              <text>The list of params to append.</text>
            </param>
          </doc>
        </function>
        <function name="append" id="9dmdqhFa/biHl8nWL0gfEGmBUo8=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="386"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Append elements</text>
            </brief>
            <para>
              <text>This function appends a param to the view.</text>
            </para>
            <para>
              <text>The </text>
              <mono>end()</mono>
              <text> iterator is invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.params().append( { &quot;first&quot;, &quot;John&quot; } );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the new element.</text>
            </returns>
            <param name="p">
              <text>The param to append.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="append" id="yoPRc7gpSHSSVGYMIP4R2eDg8IM=">
            <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="450"/>
            <return>
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </return>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Append elements</text>
              </brief>
              <para>
                <text>This function appends a range of params to the view.</text>
              </para>
              <para>
                <text>The </text>
                <mono>end()</mono>
                <text> iterator is invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>An iterator to the first new element.</text>
              </returns>
              <param name="first">
                <text>The first element to append.</text>
              </param>
              <param name="last">
                <text>One past the last element to append.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="assign" id="mLxo7H9l4Px927KeVSp49qknJt4=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="321"/>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assign elements</text>
            </brief>
            <para>
              <text>This function replaces the entire contents of the view with the params in the </text>
              <italic>initializer-list</italic>
              <text>.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.params().assign( {{ &quot;first&quot;, &quot;John&quot; }, { &quot;last&quot;, &quot;Doe&quot; }} );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="assign" id="LwZqprqmiVZ1AhFQAYs6kPgTFmM=">
            <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="355"/>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Assign elements</text>
              </brief>
              <para>
                <text>This function replaces the entire contents of the view with the params in the range.</text>
              </para>
              <para>
                <text>All iterators are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in the size of the range.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <param name="first">
                <text>The first element to assign.</text>
              </param>
              <param name="last">
                <text>One past the last element to assign.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="begin" exception-spec="noexcept" id="rgFjw9W6rMjgEYkGOVMDiLJIIdE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="233"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="cpczYPJifQzreeaLMlFMrIk8geU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="184"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().buffer() == &quot;?first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="/ZH/B/Ue7rMuRZ41OiOL9pCngTk=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="286"/>
          <doc>
            <brief>
              <text>Clear the contents of the container</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;url().remove_query();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true &amp;&amp; this-&gt;url().has_query() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="+m1VjI0xtgykFmvRxecqZkXJBNg=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="281"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="SUQ73EvVipRYcJ2Sg24T8d60qeQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="VQ4Gk4oWz8OorSDPtJoAWpHsFaI=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="202"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="NYG2/rgQQuH/CSw2qObuDUB3DYo=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="246"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="WmulA0OfqfxzcY4Wk4glpm6tbMs=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="600"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase elements</text>
            </brief>
            <para>
              <text>This function removes an element from the container.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

params_ref::iterator it = u.params().erase( u.params().begin() );

assert( u.encoded_query() == &quot;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="+dVMjzbVrt65BpN7a/wkVYfHY7Q=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="622"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="first">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="last">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase elements</text>
            </brief>
            <para>
              <text>This function removes a range of elements from the container.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>first</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed range.</text>
            </returns>
            <param name="first">
              <text>The first element to remove.</text>
            </param>
            <param name="last">
              <text>One past the last element to remove.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="B2A7bnSaKkVCI5zd9gB1DuklqpI=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="655"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Erase elements</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;count( key, ic ) == 0</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of elements removed from the container.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="mSdbytykajruHQy1W8iyrWbbOmM=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="362"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;First&quot;, ignore_case )).value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Q/NxQl0WFzXMzvRmJDH5BghXp5M=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="407"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="from">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find( &quot;first&quot; ) != u.params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="T7jam5dZRMsS/ZHAEHdP05Fqlug=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="448"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find_last( &quot;last&quot; )).value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="2y2ewlvaEuZkWtKX4p7xlBO2wXU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="494"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="before">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find_last( &quot;last&quot; ) != u.params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="insert" id="IRCrEu1TQqmMtrFIkqKWnML3s+I=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="519"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="before">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Insert elements</text>
            </brief>
            <para>
              <text>This function inserts the params in an </text>
              <italic>initializer-list</italic>
              <text> before the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or </text>
              <mono>before</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the element is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="init">
              <text>The list of params to insert.</text>
            </param>
          </doc>
        </function>
        <function name="insert" id="inqCN/guAaHuyerzHhXfXMB8zGE=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="482"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="before">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Insert elements</text>
            </brief>
            <para>
              <text>This function inserts a param before the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the inserted element.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the param is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="p">
              <text>The param to insert.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="insert" id="WG2hvXXhfS6dlnyW9UY3PkUCvgQ=">
            <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="562"/>
            <return>
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </return>
            <param name="before">
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Insert elements</text>
              </brief>
              <para>
                <text>This function inserts a range of params before the specified position.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>before</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>An iterator to the first element inserted, or </text>
                <mono>before</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <returns>
                <text>An iterator to the first element inserted, or </text>
                <mono>before</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <param name="before">
                <text>An iterator before which the element is inserted. This may be equal to </text>
                <mono>end()</mono>
                <text>.</text>
              </param>
              <param name="first">
                <text>The first element to insert.</text>
              </param>
              <param name="last">
                <text>One past the last element to insert.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="replace" id="3Ong3jX1kscAlsfcWm5LXW6Filc=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="694"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="p">
            <type class="lvalue-reference">
              <pointee-type id="C+IWBHRl3NluE4QVhoCkgb59VAc=" name="param_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Replace elements</text>
            </brief>
            <para>
              <text>This function replaces the contents of the element at </text>
              <mono>pos</mono>
              <text> with the specified param.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

u.params().replace( u.params().begin(), { &quot;title&quot;, &quot;Mr&quot; });

assert( u.encoded_query() == &quot;title=Mr&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
            <param name="p">
              <text>The param to assign.</text>
            </param>
          </doc>
        </function>
        <function name="replace" id="s9ZmYRgGWJePYL0aEbZJYvns6xo=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="730"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="from">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="to">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Replace elements</text>
            </brief>
            <para>
              <text>This function replaces a range of elements with the params in an </text>
              <italic>initializer-list</italic>
              <text>.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or one past </text>
              <mono>to</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="from,to">
              <text>The range of elements to replace.</text>
            </param>
            <param name="init">
              <text>The list of params to assign.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="replace" id="EJy3xCbYPsCPW98ynKOOoB4ZWmM=">
            <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="773"/>
            <return>
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </return>
            <param name="from">
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </param>
            <param name="to">
              <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Replace elements</text>
              </brief>
              <para>
                <text>This function replaces a range of elements with a range of params.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>from</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>The strings referenced by the inputs must not come from the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, param_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;url().encoded_query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>An iterator to the first element inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <returns>
                <text>An iterator to the first element inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>first == last</mono>
                <text>.</text>
              </returns>
              <param name="from">
                <text>The first element to replace.</text>
              </param>
              <param name="to">
                <text>One past the last element to replace.</text>
              </param>
              <param name="first">
                <text>The first element to insert.</text>
              </param>
              <param name="last">
                <text>One past the last element to insert.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="set" id="mCYtesr8JFdY7xoHpmszJaRsXUo=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="851"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="value">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set a value</text>
            </brief>
            <para>
              <text>This function replaces the value of an element at the specified position.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?id=42&amp;id=69&quot; );

u.params().set( u.params().begin(), &quot;none&quot; );

assert( u.encoded_query() == &quot;id=none&amp;id=69&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
            <param name="value">
              <text>The value to assign. The empty string still counts as a value. That is, </text>
              <mono>has_value</mono>
              <text> for the element is true.</text>
            </param>
          </doc>
        </function>
        <function name="set" id="EGjhOkY1INrpzeQENVRQb2nwmx8=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="913"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="value">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Set a value</text>
            </brief>
            <para>
              <text>This function performs one of two actions depending on the value of </text>
              <mono>this-&gt;contains( key, ic )</mono>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If key is contained in the view</text>
                <text>        then one of the matching elements has</text>
                <text>        its value changed to the specified value.</text>
                <text>        The remaining elements with a matching</text>
                <text>        key are erased. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If `key` is not contained in the</text>
                <text>        view, then the function apppends the</text>
                <text>        param `{ key, value }`.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?id=42&amp;id=69&quot; );

u.params().set( &quot;id&quot;, &quot;none&quot; );

assert( u.params().count( &quot;id&quot; ) == 1 );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;count( key, ic ) == 1 &amp;&amp; this-&gt;find( key, ic )-&gt;value == value</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the appended or modified element.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="value">
              <text>The value to assign. The empty string still counts as a value. That is, </text>
              <mono>has_value</mono>
              <text> for the element is true.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="u/w33vX8w/yA/9Gl176lDHdQs4k=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="220"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function name="unset" exception-spec="noexcept" id="jxURKYVSYJoxZiuBOnhDenCs1rA=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="813"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Remove the value on an element</text>
            </brief>
            <para>
              <text>This function removes the value of an element at the specified position. After the call returns, </text>
              <mono>has_value</mono>
              <text> for the element is false.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?first=John&amp;last=Doe&quot; );

u.params().unset( u.params().begin() );

assert( u.encoded_query() == &quot;first&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the element.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
          </doc>
        </function>
        <function name="url" exception-spec="noexcept" id="40HPQpiad5IvD+unAuZCj3AHuA0=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="253" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the referenced url</text>
            </brief>
            <para>
              <text>This function returns the url referenced by the view.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;?key=value&quot; );

assert( &amp;u.segments().url() == &amp;u );</text>
            </code>
            <head>Exception Safety</head>
            <code>
              <text>Throws nothing.</text>
            </code>
            <returns>
              <text>A reference to the url.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator params_view" exception-spec="noexcept" id="N+s3ZvmEa8MkvVluiPBiQWSSM4U=">
          <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="225"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <returns>
              <text>A view of the query parameters.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="JAc718f//bzvETv8VNPf4ujJ2G8=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="params_view" id="DzqMpaJX2O25vPFxEN5EDTyU6uw=">
        <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="47" class="def"/>
        <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="25"/>
        <base>
          <type id="paRP7A1SOQlKcnfXhxL4FgbVXKs=" name="params_base"/>
        </base>
        <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
          <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
        </friend>
        <friend id="0nSfM4mK92fIx58KtzdWGiHuq2w=">
          <befriended id="0nSfM4mK92fIx58KtzdWGiHuq2w="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing query parameters in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the query parameters as a bidirectional view of key/value pairs.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;?first=John&amp;last=Doe&quot; );

params_view p = u.params();</text>
          </code>
          <para>
            <text>Percent escapes in strings returned when dereferencing iterators are automatically decoded.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it.</text>
          </para>
        </doc>
        <namespace-alias name="const_iterator" id="4XRIDzJtD8YcNf6ybgP1JlmdPbE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="100"/>
          <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="/aPvkkBZhzgeMb2UCNaJ1s5c6oQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="129"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="4jo6j51QPa7nfAiEWAM6LJc4fLs=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="137"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="8Hg/5b5RDYgIk/T6aP0tPj0HbSc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="126"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
            <see>
              <reference id="C+IWBHRl3NluE4QVhoCkgb59VAc=">param_view</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="cFqtE5widJnnA8qwGOBnkhkdR6Y=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="133"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type to represent sizes.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="/wVpdYewE+NKvN60EGcgNiIZ+Mc=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="116"/>
          <type id="fsdT8sbwW/lniPI5gqvIf2JMGBM=" name="param"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent parameters whose strings retain unique ownership by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view::value_type qp( *url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;first&quot; ) );</text>
            </code>
            <see>
              <reference id="fsdT8sbwW/lniPI5gqvIf2JMGBM=">param</reference>
              <text>.</text>
            </see>
          </doc>
        </namespace-alias>
        <class name="iterator" id="maJcbp53hfhQNovBi8QEK/+HTzw=">
          <file short-path="boost/url/impl/params_base.hpp" source-path="include/boost/url/impl/params_base.hpp" line="22" class="def"/>
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="97"/>
          <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
            <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
          </friend>
          <friend id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
            <befriended id="paRP7A1SOQlKcnfXhxL4FgbVXKs="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a query parameter</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the parameters in the query. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to parameters must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
            <para>
              <text>The implementation may use temporary, recycled storage to store decoded strings. These iterators are meant to be used ephemerally. That is, for short durations such as within a function scope. Do not store iterators with static storage duration or as long-lived objects.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="params_view" id="1164/Ok6Ouw7H1B2XyRWiYBHRqI=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="80" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default-constructed params have zero elements.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view qp;</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return params_view( &quot;&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="params_view" id="kbyYjwWKQMGVCz9z5J6cuaxT3wI=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="105" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction both views reference the same character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <param name="other">
              <text>The object to copy</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="params_view" id="mtZAb/TqqVclweoRDpFPAwb+pPA=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="191"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs params from a valid query parameter string, which can contain percent escapes. Unlike the parameters in URLs, the string passed here should not start with &quot;?&quot;. Upon construction, the view references the character buffer pointed to by </text>
              <mono>s</mono>
              <text>. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view qp( &quot;first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return parse_query( s ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )

query-param     = key [ &quot;=&quot; value ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid query parameter string.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="params_view" id="QTr9aDRMSQUV86floR9rnK66D1Q=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="258"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs params from a valid query parameter string, which can contain percent escapes.</text>
            </para>
            <para>
              <text>This instance will use the specified </text>
              <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
              <text> when the values are decoded.</text>
            </para>
            <para>
              <text>Unlike the parameters in URLs, the string passed here should not start with &quot;?&quot;. Upon construction, the view will reference the character buffer pointed to by </text>
              <mono>s</mono>
              <text>. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>encoding_opts opt;
opt.space_as_plus = true;
params_view qp( &quot;name=John+Doe&quot;, opt );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return params_view(parse_query( s ).value(), opt);</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )

query-param     = key [ &quot;=&quot; value ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, </text>
              <mono>space_as_plus</mono>
              <text> is used.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid query parameter string.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="params_view" exception-spec="noexcept" id="Hgdj76635HFJyoq5j2uinpxH+/c=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="135"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction both views will reference the same character buffer but this instance will use the specified </text>
              <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
              <text> when the values are decoded.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <param name="other">
              <text>The object to copy</text>
            </param>
            <param name="opt">
              <text>The options for decoding</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="jC0rL5Q8ggiLsnKp6Xy0GRt4XbI=">
          <file short-path="boost/url/params_view.hpp" source-path="include/boost/url/params_view.hpp" line="286" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <text>A reference to this object</text>
            </returns>
            <param name="other">
              <text>The object to assign</text>
            </param>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="rgFjw9W6rMjgEYkGOVMDiLJIIdE=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="233"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in the size of the first param.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the beginning.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="cpczYPJifQzreeaLMlFMrIk8geU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="184"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().buffer() == &quot;?first=John&amp;last=Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="+m1VjI0xtgykFmvRxecqZkXJBNg=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="281"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching key exists</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().contains( &quot;first&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if a matching key exists.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="count" exception-spec="noexcept" id="SUQ73EvVipRYcJ2Sg24T8d60qeQ=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="317"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Return the number of matching keys</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find the number of matches for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?first=John&amp;last=Doe&quot; ).params().count( &quot;first&quot; ) == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of matching keys.</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="VQ4Gk4oWz8OorSDPtJoAWpHsFaI=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="202"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;?key=value&quot; ).params().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no params.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="NYG2/rgQQuH/CSw2qObuDUB3DYo=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="246"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the end.</text>
            </returns>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="mSdbytykajruHQy1W8iyrWbbOmM=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="362"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find( &quot;First&quot;, ignore_case )).value == &quot;John&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return this-&gt;find( this-&gt;begin(), key, ic );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="Q/NxQl0WFzXMzvRmJDH5BghXp5M=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="407"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="from">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts at </text>
              <mono>from</mono>
              <text> and proceeds forward until either the key is found or the end of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find( &quot;first&quot; ) != u.params().find( &quot;first&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="from">
              <text>The position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="T7jam5dZRMsS/ZHAEHdP05Fqlug=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="448"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts from the last param and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( (*url_view( &quot;?first=John&amp;last=Doe&quot; ).params().find_last( &quot;last&quot; )).value == &quot;Doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="find_last" exception-spec="noexcept" id="2y2ewlvaEuZkWtKX4p7xlBO2wXU=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="494"/>
          <attr id="is-const"/>
          <return>
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </return>
          <param name="before">
            <type id="maJcbp53hfhQNovBi8QEK/+HTzw=" name="iterator"/>
          </param>
          <param name="key">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="ic" default="{}">
            <type id="RATceEbebMWrhFXGkG2RDFi+7WY=" name="ignore_case_param"/>
          </param>
          <doc>
            <brief>
              <text>Find a matching key</text>
            </brief>
            <para>
              <text>This function examines the parameters in the container to find a match for the specified key. The comparison is performed as if all escaped characters were decoded first.</text>
            </para>
            <para>
              <text>The search starts prior to </text>
              <mono>before</mono>
              <text> and proceeds backwards until either the key is found or the beginning of the range is reached, in which case </text>
              <mono>end()</mono>
              <text> is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;?First=John&amp;Last=Doe&quot; );

assert( u.params().find_last( &quot;last&quot; ) != u.params().find_last( &quot;last&quot;, ignore_case ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;buffer().size()</mono>
              <text>.</text>
            </para>
            <returns>
              <text>an iterator to the param</text>
            </returns>
            <param name="before">
              <text>One past the position to begin the search from. This can be </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="key">
              <text>The key to match. By default, a case-sensitive comparison is used.</text>
            </param>
            <param name="ic">
              <text>An optional parameter. If the value </text>
              <reference id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=">ignore_case</reference>
              <text> is passed here, the comparison is case-insensitive.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="u/w33vX8w/yA/9Gl176lDHdQs4k=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="220"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of params</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;?key=value&quot;).params().size() == 1 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of params.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="JAc718f//bzvETv8VNPf4ujJ2G8=">
          <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="pct_string_view" id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=">
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="59" class="def"/>
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="32"/>
        <attr id="is-final"/>
        <base>
          <type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="grammar::string_view_base"/>
        </base>
        <friend id="mgIS/AfQlcgKNFKOdLRtjihgyFk=">
          <befriended id="mgIS/AfQlcgKNFKOdLRtjihgyFk="/>
        </friend>
        <doc>
          <brief>
            <text>A reference to a valid percent-encoded string</text>
          </brief>
          <para>
            <text>Objects of this type behave like a </text>
            <mono>core::string_view</mono>
            <text> and have the same interface, but offer an additional invariant: they can only be constructed from strings containing valid percent-escapes.</text>
          </para>
          <para>
            <text>Attempting construction from a string containing invalid or malformed percent escapes results in an exception.</text>
          </para>
        </doc>
        <typedef name="const_iterator" id="M9nrRq55PVZTWigkof7hlGqhSQs=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="111"/>
          <type class="pointer">
            <pointee-type name="char" cv-qualifiers="const"/>
          </type>
          <doc>
            <brief>
              <text>The const iterator type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="const_pointer" id="RPNsNnoyHwmywxuPxn4syH3bXek=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="105"/>
          <type class="pointer">
            <pointee-type name="char" cv-qualifiers="const"/>
          </type>
          <doc>
            <brief>
              <text>The const pointer type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="const_reference" id="foZNP6eKrZGgZPs/IKbd+dOnIuM=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="109"/>
          <type class="lvalue-reference">
            <pointee-type name="char" cv-qualifiers="const"/>
          </type>
          <doc>
            <brief>
              <text>The const reference type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="const_reverse_iterator" id="cmB6LiOLkFK4MPA38l8T4GLupFw=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="115"/>
          <type id="570Q1l1MUvO3hJraLUThdr4GLPI=" name="std::reverse_iterator&lt;const_iterator&gt;"/>
          <doc>
            <brief>
              <text>The const reverse iterator type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="difference_type" id="dmpIlMstDzpGYMTB6B+hurB+mqI=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="122"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>The difference type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="iterator" id="v2Dep12IPAm8omMGyr9KHifBXH4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="113"/>
          <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
          <doc>
            <brief>
              <text>The iterator type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="pointer" id="gbVUBvZPpjoSvvOZqK1W2zhI5AQ=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="103"/>
          <type class="pointer">
            <pointee-type name="char"/>
          </type>
          <doc>
            <brief>
              <text>The pointer type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="reference" id="2BMU5wYwVuaXlVqUpJvke+7MMCM=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="107"/>
          <type class="lvalue-reference">
            <pointee-type name="char"/>
          </type>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="reverse_iterator" id="14arRDIBq/YgI13qmWwvuybUAb4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="118"/>
          <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
          <doc>
            <brief>
              <text>The reverse iterator type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="size_type" id="aECoDgZjoIcUl2uioc0rf6uRMMc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="120"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>The size type</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="traits_type" id="+tfZtqIc5gHEEmeC/8lIgJYq4fI=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="99"/>
          <type name="std::char_traits&lt;char&gt;"/>
          <doc>
            <brief>
              <text>The character traits</text>
            </brief>
          </doc>
        </typedef>
        <typedef name="value_type" id="b0aWgwrT3AK3/HLk/RWi8rRkN5s=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="101"/>
          <type name="char"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
          </doc>
        </typedef>
        <function class="constructor" name="pct_string_view" id="B6Omwxmd0wianQ380vWy5MdjNts=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="104" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed string are empty.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="pct_string_view" id="euJlgcXggZOXAlj/OvtBHJgYqn0=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="126" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The copy references the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;data() == other.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The string to copy.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="pct_string_view" id="/Sh3kVH8IVM06SmpUPKbuhH95Ow=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="174" class="def"/>
          <attr id="is-deleted"/>
          <attr id="is-deleted-as-written"/>
          <param name="value">
            <type id="EHI+o2/+5jHQW597jZMivg2DIyU=" name="std::nullptr_t"/>
          </param>
          <doc>
            <brief>
              <text>Constructor (deleted)</text>
            </brief>
            <param name="value">
              <text>The object to construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="pct_string_view" id="1KDDiQ2XilO7xEpMYQgZaEIGskk=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="231"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The newly constructed string references the specified character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;data() == s.data() &amp;&amp; this-&gt;size() == s.size()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <param name="s">
              <text>The string to construct from.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent encoding.</text>
            </throws>
          </doc>
        </function>
        <template requires="std::is_convertible&lt;
                String,
                core::string_view
                    &gt;::value">
          <tparam name="String" class="type"/>
          <function class="constructor" name="pct_string_view" id="xyCBNcYnTeX12QksdJSVLghVR0U=">
            <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="154" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type name="String" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>The newly constructed string references the specified character buffer. Ownership is not transferred.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;data() == core::string_view(s).data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>core::string_view(s).size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Exceptions thrown on invalid input.</text>
              </para>
              <param name="s">
                <text>The string to construct from.</text>
              </param>
              <tparam name="String">
                <text>A type convertible to </text>
                <mono>core::string_view</mono>
              </tparam>
              <throws>
                <text>The string contains an invalid percent encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function class="constructor" name="pct_string_view" id="Zn3qeFQJ1firhr2kTuPXqYDst7U=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="200" class="def"/>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="len">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The newly constructed string references the specified character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;data() == s &amp;&amp; this-&gt;size() == len</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>len</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <param name="s">
              <text>The string to construct from.</text>
            </param>
            <param name="len">
              <text>The length of the string.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="operator=" id="dddK8U41CVXCAcQA8HC6MudTe+4=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="254" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The copy references the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;data() == other.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The string to copy.</text>
            </param>
          </doc>
        </function>
        <function name="at" id="nQC4Y2i6s+wheRlt1v5rJGHNugs=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="331" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
          </return>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Access a character</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::at</mono>
            </para>
            <returns>
              <text>The character at the position</text>
            </returns>
            <param name="pos">
              <text>The position to access</text>
            </param>
          </doc>
        </function>
        <function name="back" exception-spec="noexcept" id="GPSBm+5EDtUTksx88cke1u+q9fA=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="355" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
          </return>
          <doc>
            <brief>
              <text>Return the last character</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::back</mono>
            </para>
            <returns>
              <text>The last character</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="EZ1FqJVEv6ucG/n1Wsn17g4MDuU=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="177" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::begin</mono>
            </para>
            <returns>
              <text>An iterator to the beginning</text>
            </returns>
          </doc>
        </function>
        <function name="cbegin" exception-spec="noexcept" id="xhLRk2Z+3lJ0NKV/ZzG0ObdE4Vc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="199" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::cbegin</mono>
            </para>
            <returns>
              <text>An iterator to the beginning</text>
            </returns>
          </doc>
        </function>
        <function name="cend" exception-spec="noexcept" id="Rx+0KJ+TNUnikAkigK/WTETroXU=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="210" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::cend</mono>
            </para>
            <returns>
              <text>An iterator to the end</text>
            </returns>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="IRvtO34ISMkRvDCtGybUVmg7Mpw=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="413" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="str">
              <text>The string to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="cNRLSdfTDXzapcGN7U2pkhe09u8=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="459" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="s">
              <text>The string to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" id="p84tStAnLdfQHeETDgnjtJoYiqE=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="428" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="pos1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="pos1">
              <text>The position to start comparing from</text>
            </param>
            <param name="n1">
              <text>The number of characters to compare</text>
            </param>
            <param name="str">
              <text>The string to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" id="sURljmP39tfuj1ZZWF8Ttf48S6k=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="474" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="pos1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="pos1">
              <text>The position to start comparing from</text>
            </param>
            <param name="n1">
              <text>The number of characters to compare</text>
            </param>
            <param name="s">
              <text>The string to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" id="wZOXO+R6A3OjQdJiNoaXo0DPlaE=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="490" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="pos1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="n2">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="pos1">
              <text>The position to start comparing from</text>
            </param>
            <param name="n1">
              <text>The number of characters to compare</text>
            </param>
            <param name="s">
              <text>The string to compare</text>
            </param>
            <param name="n2">
              <text>The number of characters to compare</text>
            </param>
          </doc>
        </function>
        <function name="compare" id="4gqP5TnZo4twWHg6MUkJBPf8gqo=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="445" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="pos1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n1">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos2">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n2">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing to another string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::compare</mono>
            </para>
            <returns>
              <text>The result of the comparison</text>
            </returns>
            <param name="pos1">
              <text>The position to start comparing from</text>
            </param>
            <param name="n1">
              <text>The number of characters to compare</text>
            </param>
            <param name="str">
              <text>The string to compare</text>
            </param>
            <param name="pos2">
              <text>The position to start comparing from</text>
            </param>
            <param name="n2">
              <text>The number of characters to compare</text>
            </param>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="hKoap9FjP5AWE6/DO69KvjFf2GY=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="942" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="sv">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return true if matching characters are found</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::contains</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the string contains the characters, otherwise </text>
              <mono>false</mono>
            </returns>
            <param name="sv">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="SANFmu7YhW7sQVghxqUDA0HYZXU=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="954" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return true if matching characters are found</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::contains</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the string contains the character, otherwise </text>
              <mono>false</mono>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="contains" exception-spec="noexcept" id="MV82Q9BS0ywf/roJrND9qK4OSDk=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="966" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return true if matching characters are found</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::contains</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the string contains the characters, otherwise </text>
              <mono>false</mono>
            </returns>
            <param name="s">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="copy" id="MQMMmX8IqIdfOm6FYDjZZidJvfc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="384" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Copy the characters to another buffer</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::copy</mono>
            </para>
            <returns>
              <text>The number of characters copied</text>
            </returns>
            <param name="s">
              <text>The destination buffer</text>
            </param>
            <param name="n">
              <text>The number of characters to copy</text>
            </param>
            <param name="pos">
              <text>The position to start from</text>
            </param>
          </doc>
        </function>
        <function name="crbegin" exception-spec="noexcept" id="xeK5f2DKhD4FxCGyXOyhullgYmo=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="245" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return a reverse iterator to the end</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::crbegin</mono>
            </para>
            <returns>
              <text>A reverse iterator to the end</text>
            </returns>
          </doc>
        </function>
        <function name="crend" exception-spec="noexcept" id="1CpIQ/DMUJBo1D7302C0yEQZuOs=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="257" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return a reverse iterator to the beginning</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::crend</mono>
            </para>
            <returns>
              <text>A reverse iterator to the beginning</text>
            </returns>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="HTcdnV1aiZerjYE3I6KR5Gq7cf0=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="367" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="RPNsNnoyHwmywxuPxn4syH3bXek=" name="const_pointer"/>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the character buffer</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::data</mono>
            </para>
            <returns>
              <text>A pointer to the character buffer</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="decode" id="HSnuV2919VtfLkMNB4i+t2rX6Bg=">
            <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="342" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="opt" default="{}">
              <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
            </param>
            <param name="token">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the string with percent-decoding</text>
              </brief>
              <para>
                <text>This function converts percent escapes in the string into ordinary characters and returns the result. When called with no arguments, the return type is </text>
                <mono>std::string</mono>
                <text>. Otherwise, the return type and style of output is determined by which string token is passed.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( pct_string_view( &quot;Program%20Files&quot; ).decode() == &quot;Program Files&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <returns>
                <text>The decoded string.</text>
              </returns>
              <param name="opt">
                <text>The options for encoding. If this parameter is omitted, the default options are used.</text>
              </param>
              <param name="token">
                <text>An optional string token. If this parameter is omitted, then a new </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the function return type is the result type of the token.</text>
              </param>
              <see>
                <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
                <text>, </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="decoded_size" exception-spec="noexcept" id="JM9rOXKY3LqUNykMVeHmSVOS3NY=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="280" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the decoded size</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the resulting string if percent escapes were converted into ordinary characters.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the decoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="OzkudhIJlNyjV0TJmLlM1RnFEVc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="304" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the string is empty</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::size</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the string is empty</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="lnRLWv5zOOX26+6Kh57i38FcfZk=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="188" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="M9nrRq55PVZTWigkof7hlGqhSQs=" name="const_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::end</mono>
            </para>
            <returns>
              <text>An iterator to the end</text>
            </returns>
          </doc>
        </function>
        <function name="ends_with" exception-spec="noexcept" id="qZO0HQe8HcXAyHXcIQg/g3k7/ns=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="547" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching suffix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::ends_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the suffix matches</text>
            </returns>
            <param name="x">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="ends_with" exception-spec="noexcept" id="bqqpptdDDphYcnOxoQYZ8bbItrM=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="560" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching suffix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::ends_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the suffix matches</text>
            </returns>
            <param name="x">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="ends_with" exception-spec="noexcept" id="zfWvE3uSkk8/XX+XPIVSaZzh6Ig=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="573" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching suffix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::ends_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the suffix matches</text>
            </returns>
            <param name="x">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="2lfO3WOzLvG1bfwozRhCmBlrqrg=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="589" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="BOuO0aTf73DXdcvqk1MTaHMpXbo=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="603" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="xo8geXuOyX+q7RM3qua7kwLktr0=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="632" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find" exception-spec="noexcept" id="dia+zPAAu3luYQToXoYd7W8/Wic=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="618" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="find_first_not_of" exception-spec="noexcept" id="5d938wswt4edetpV8UL9bD5KDc4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="825" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_not_of</mono>
            </para>
            <returns>
              <text>The position of the first non-match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_not_of" exception-spec="noexcept" id="IfcO4L0ztTwJMGHApS0AToDt5Aw=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="839" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_not_of</mono>
            </para>
            <returns>
              <text>The position of the first non-match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_not_of" exception-spec="noexcept" id="wmKQqbOIrZmJ/7Cp7VJTFNavoow=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="868" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_not_of</mono>
            </para>
            <returns>
              <text>The position of the first non-match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_not_of" exception-spec="noexcept" id="qeiTNiB98fApJrmQcyF37NoW9j4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="854" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_not_of</mono>
            </para>
            <returns>
              <text>The position of the first non-match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="find_first_of" exception-spec="noexcept" id="q7omXr2uqTr3v1fJVzA94fhapvE=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="707" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_of</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_of" exception-spec="noexcept" id="TcE6uiDkICSzkegC9lzTM87jwlo=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="721" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_of</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_of" exception-spec="noexcept" id="iz2GUCM611IYR/kjQB79q1n872g=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="750" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_of</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_first_of" exception-spec="noexcept" id="r4kUkL0YV/fA06QtJmR/TjXUtao=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="736" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the first match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_first_of</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="find_last_not_of" exception-spec="noexcept" id="Nfr+v2bpMFyORAQhtwLZ5J432w4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="884" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_not_of</mono>
            </para>
            <returns>
              <text>The position of the last non-match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_not_of" exception-spec="noexcept" id="2AMMYo3v1gttHFufhYHieIj8bdI=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="898" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_not_of</mono>
            </para>
            <returns>
              <text>The position of the last non-match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_not_of" exception-spec="noexcept" id="ZPpivnq8JwObb7gqwj6DDXtVLJA=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="927" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_not_of</mono>
            </para>
            <returns>
              <text>The position of the last non-match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_not_of" exception-spec="noexcept" id="Gu5ADf/dTdCmnisbu/DaC5FtlDQ=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="913" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last non-match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_not_of</mono>
            </para>
            <returns>
              <text>The position of the last non-match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="find_last_of" exception-spec="noexcept" id="AZeST6eCw9rmQ9mUiVCMY8YyfjU=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="766" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_of</mono>
            </para>
            <returns>
              <text>The position of the last match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_of" exception-spec="noexcept" id="x9U9ssyIOQKxLkWfX/TBjJwL3gg=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="780" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_of</mono>
            </para>
            <returns>
              <text>The position of the last match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_of" exception-spec="noexcept" id="j10zGQ8rw2lMRMG+TCKNGInKHK4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="809" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_of</mono>
            </para>
            <returns>
              <text>The position of the last match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="find_last_of" exception-spec="noexcept" id="IIJbBmNRXB9cDV2Hodq45rXi+QY=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="795" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of the last match</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::find_last_of</mono>
            </para>
            <returns>
              <text>The position of the last match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="GCtLfDBN/T6snyktUaiy6XEF9z0=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="343" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
          </return>
          <doc>
            <brief>
              <text>Return the first character</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::front</mono>
            </para>
            <returns>
              <text>The first character</text>
            </returns>
          </doc>
        </function>
        <function name="length" exception-spec="noexcept" id="Hl4C4fbIugV95gCntPCSc1vWBh0=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="282" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the size</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::length</mono>
            </para>
            <returns>
              <text>The size</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="Qyt6qjjrJx0hZ8PQ6zdSAvGHKvU=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="293" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum allowed size</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::max_size</mono>
            </para>
            <returns>
              <text>The maximum allowed size</text>
            </returns>
          </doc>
        </function>
        <function name="operator*" exception-spec="noexcept" id="Q//o6vK16OmfxdQKesNHjMao4iU=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="1052" class="def"/>
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="300"/>
          <attr id="operator" name="star" value="7"/>
          <attr id="is-const"/>
          <return>
            <type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the string as a range of decoded characters</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A range of decoded characters.</text>
            </returns>
            <see>
              <reference id="IhE/V16b2wBX2q+s4QtlgzozWlQ=">decode_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="operator-&gt;" exception-spec="noexcept" id="QIbw5G83o636lENHQxQpoEKN6kE=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="367" class="def"/>
          <attr id="operator" name="ptr" value="41"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Arrow support</text>
            </brief>
            <returns>
              <text>A pointer to this object.</text>
            </returns>
          </doc>
        </function>
        <function name="operator[]" exception-spec="noexcept" id="8YWsfJWY2hTYjFk9Llyg3aJV1hk=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="318" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="subs" value="43"/>
          <attr id="is-const"/>
          <return>
            <type id="foZNP6eKrZGgZPs/IKbd+dOnIuM=" name="const_reference"/>
          </return>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Access a character</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::operator[]</mono>
            </para>
            <returns>
              <text>The character at the position</text>
            </returns>
            <param name="pos">
              <text>The position to access</text>
            </param>
          </doc>
        </function>
        <function name="rbegin" exception-spec="noexcept" id="L0f4ee/wt58Mb/deFLDyLlyfVGY=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="221" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return a reverse iterator to the end</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rbegin</mono>
            </para>
            <returns>
              <text>A reverse iterator to the end</text>
            </returns>
          </doc>
        </function>
        <function name="rend" exception-spec="noexcept" id="RdDaHzncr8vavW/PrNUWQxSXPY4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="233" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="cmB6LiOLkFK4MPA38l8T4GLupFw=" name="const_reverse_iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return a reverse iterator to the beginning</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rend</mono>
            </para>
            <returns>
              <text>A reverse iterator to the beginning</text>
            </returns>
          </doc>
        </function>
        <function name="rfind" exception-spec="noexcept" id="7eScYOCz/vJ9fpDMMotM0+I8qOE=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="648" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="str">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rfind</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="str">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="rfind" exception-spec="noexcept" id="67zrufCp4NocNFW+MQmW2AZJHKM=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="662" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="c">
            <type name="char"/>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rfind</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="c">
              <text>The character to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="rfind" exception-spec="noexcept" id="18WfSjD0IUf2RSlBRXtH9ZUGgpE=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="691" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rfind</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
          </doc>
        </function>
        <function name="rfind" exception-spec="noexcept" id="u8pQymbEkfioZr0NHqfpMpKZWho=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="677" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <param name="s">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="pos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return the position of matching characters</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::rfind</mono>
            </para>
            <returns>
              <text>The position of the first match</text>
            </returns>
            <param name="s">
              <text>The characters to search for</text>
            </param>
            <param name="pos">
              <text>The position to start searching from</text>
            </param>
            <param name="n">
              <text>The number of characters to search for</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="XdOsrY6qbLFskpkyLJ49siyex04=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="271" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the size</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::size</mono>
            </para>
            <returns>
              <text>The size</text>
            </returns>
          </doc>
        </function>
        <function name="starts_with" exception-spec="noexcept" id="b1zBGpDL1DMowpruv731stD3Vgw=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="506" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching prefix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::starts_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the prefix matches</text>
            </returns>
            <param name="x">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="starts_with" exception-spec="noexcept" id="v3qqifP7Un5JkmpKk4TtAxbqINc=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="519" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching prefix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::starts_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the prefix matches</text>
            </returns>
            <param name="x">
              <text>The character to search for</text>
            </param>
          </doc>
        </function>
        <function name="starts_with" exception-spec="noexcept" id="1Y9DRmbXN1J7HNFxFNed/jYhRcs=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="532" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="x">
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return true if a matching prefix exists</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::starts_with</mono>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the prefix matches</text>
            </returns>
            <param name="x">
              <text>The string to search for</text>
            </param>
          </doc>
        </function>
        <function name="substr" id="mRqi8IZOOX0xLFHe28WQ8Zwvmkg=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="398" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <param name="pos" default="0">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <param name="n" default="core::string_view::npos">
            <type id="aECoDgZjoIcUl2uioc0rf6uRMMc=" name="size_type"/>
          </param>
          <doc>
            <brief>
              <text>Return a view to part of the string</text>
            </brief>
            <para>
              <text>See </text>
              <mono>core::string_view::substr</mono>
            </para>
            <returns>
              <text>A view to the substring</text>
            </returns>
            <param name="pos">
              <text>The position to start from</text>
            </param>
            <param name="n">
              <text>The number of characters</text>
            </param>
          </doc>
        </function>
        <function name="swap" exception-spec="noexcept" id="sJGvEZ7xbZT0H6u3eUl29JbXZxU=">
          <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="381" class="def"/>
          <param name="s">
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Swap</text>
            </brief>
            <param name="s">
              <text>The object to swap with</text>
            </param>
          </doc>
        </function>
        <function class="conversion" name="operator basic_string&lt;char&gt;" exception-spec="noexcept" explicit-spec="explicit" id="bRcyVQ6ZJghIfxH913mNeaUsZuo=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="160" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <para>
              <text>Conversion to std::string is explicit because assigning to string using an implicit constructor does not preserve capacity.</text>
            </para>
            <returns>
              <text>A string with the same contents</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="6BCCiqqFBnxfN5d9Ki/oUcu88Ic=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="133" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="7/6mcOtEWpTb+zIbzRlao/fWWYU=" name="std::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <returns>
              <text>A string view with the same contents</text>
            </returns>
          </doc>
        </function>
        <variable name="npos" id="axqsst2fEEr0KskCuLNS6wtH26E=" default="core::string_view::npos">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="125" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>A constant used to represent &quot;no position&quot;</text>
            </brief>
          </doc>
        </variable>
        <function name="operator=" access="protected" id="aIJpv/jZ2tM+tFNkNsdGXClHwE0=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="94" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <returns>
              <text>A reference to this object</text>
            </returns>
            <param name="other">
              <text>The object to assign</text>
            </param>
          </doc>
        </function>
        <function name="swap" access="protected" exception-spec="noexcept" id="y5e2cWu7aRkl+6aRLABfP+waghM=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="73" class="def"/>
          <param name="s">
            <type class="lvalue-reference">
              <pointee-type id="Y1nkEDuKr1UIyB9Ya2bXvHYVwIY=" name="string_view_base"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Swap</text>
            </brief>
            <param name="s">
              <text>The object to swap with</text>
            </param>
          </doc>
        </function>
        <variable name="s_" access="protected" id="j2zlfB2FMKW7UWEt2w+csPbI5o4=">
          <file short-path="boost/url/grammar/string_view_base.hpp" source-path="include/boost/url/grammar/string_view_base.hpp" line="41"/>
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          <doc>
            <brief>
              <text>The referenced character buffer</text>
            </brief>
          </doc>
        </variable>
      </class>
      <class name="segments_base" id="ge9cOBTN19ywbVTnB5ajdJUC46Q=">
        <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="37" class="def"/>
        <friend id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">
          <befriended id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA="/>
        </friend>
        <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
          <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for containers</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common member functions for containers. This cannot be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>segments_ref</reference>
            </listitem>
            <listitem>
              <reference>segments_view</reference>
            </listitem>
            <listitem>
              <reference>segments_encoded_ref</reference>
            </listitem>
            <listitem>
              <reference>segments_encoded_view</reference>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="0tGsE1R1TOpKN9IAKzyNn7msre4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="76"/>
          <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="IwhREgq3doOt5R+7CpjDu5HXeJc=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="99"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="ZGzGSpAZlXL0sCedyhjsT90U4S0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="107"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="yenFqEfqqK2NrZ+2hs1Il0Gkg/Q=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="96"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="q0c7sMK+HhivONBaUVBcT+YLGYQ=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="103"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="28sEF1YglFKmk+Kcl4ymHBd02MI=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="89"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="v0DfmyG7n+onJnPwu0SmkmEIIs4=">
          <file short-path="boost/url/impl/segments_base.hpp" source-path="include/boost/url/impl/segments_base.hpp" line="24" class="def"/>
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="73"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
            <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
          </friend>
          <friend id="ge9cOBTN19ywbVTnB5ajdJUC46Q=">
            <befriended id="ge9cOBTN19ywbVTnB5ajdJUC46Q="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </class>
        <function name="back" exception-spec="noexcept" id="SiUbAVvbiztqJmIoYwdvkoQyi90=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="282"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;back().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="RJFHEvDTVOSBEWC5A/qqcBSNc14=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="297"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="v5AF2vYTekOYGThG7Nle0P0fwU4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="155"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string containing the path.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="Bkl327dG/7JY0gyN644pnPkCyj0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="196"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="oBgrqTEOKSIfUQVCZCwbVHu9pe4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="311"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="EZ3AwpJPJ+eUXoULAfCVAA57yQU=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="249"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="is_absolute" exception-spec="noexcept" id="G6s0M4MqJFqoPBxyx/2YT3jn4W8=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="yBM8jUZ7lUhztKUrKAMCVlF/JSM=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="215"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="4eJ21Hl5fc2lKip4HsTT2daKD58=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="126" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="segments_encoded_base" id="qs4TNMM406MPgeboXz6oVUmcauE=">
        <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="37" class="def"/>
        <friend id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">
          <befriended id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ="/>
        </friend>
        <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
          <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for containers</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common member functions for containers. This cannot be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>segments_ref</reference>
            </listitem>
            <listitem>
              <reference>segments_view</reference>
            </listitem>
            <listitem>
              <reference>segments_encoded_ref</reference>
            </listitem>
            <listitem>
              <reference>segments_encoded_view</reference>
            </listitem>
          </unorderedlist>
        </doc>
        <namespace-alias name="const_iterator" id="BvhJXmRgOZW7NW+ayuMQkPsFzbs=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="79"/>
          <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="7gYb+Bz+3qbqiVq+Wm8Ky9M11+o=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="102"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="m0o4b1/DorAvjn3F219/pMLvlyo=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="110"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="5In4EDUuaLDGWzqU/EoIRrGbjkw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="99"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="Qm4R83v/FlItdjfF09x/yy67FzE=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="106"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="AWMsSIW+RTb1aMhvCsG7n58jVHM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="92"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="g/L8mjAHkEezRBezNicBq+kX83A=">
          <file short-path="boost/url/impl/segments_encoded_base.hpp" source-path="include/boost/url/impl/segments_encoded_base.hpp" line="23" class="def"/>
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="76"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
            <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
          </friend>
          <friend id="qs4TNMM406MPgeboXz6oVUmcauE=">
            <befriended id="qs4TNMM406MPgeboXz6oVUmcauE="/>
          </friend>
          <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
            <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function name="back" exception-spec="noexcept" id="huIfaMM6sCgNghdm8mALz0WRL3k=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="291"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <para>
              <text>This function returns a string with the last segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="2sagwnDfZ81Ag59U6dlqMfcbRdM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="306"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="77/TrbaxaS3ddWaQsqsrxZgfrtg=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="158"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="GHSGkHUPEHCGOkttbtLrNdeJsYw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="199"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).encoded_segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="FX43RoBCFXu84qOmF9qbuAcvL3A=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="320"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="bCALqPJXUIOplPZHZ//yQObNCt4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="252"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="is_absolute" exception-spec="noexcept" id="qPtb3Gf4eUGNjob+VCTNZu3sUr4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="180"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="BJwakVSJbowHvD7bCKsCv7Qv2EM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="218"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="chJ3si+vtHLHOc1xY/5U+6aQTc4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="129" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="segments_encoded_ref" id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
        <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="88" class="def"/>
        <base>
          <type id="qs4TNMM406MPgeboXz6oVUmcauE=" name="segments_encoded_base"/>
        </base>
        <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
          <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing path segments in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the path as a bidirectional view of segments, where each segment is a string which may contain percent-escapes.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <para>
            <text>The view is modifiable; calling non-const members causes changes to the referenced url.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url u( &quot;/path/to/file.txt&quot; );

segments_encoded_ref ps = u.encoded_segments();</text>
          </code>
          <para>
            <text>The strings returned when iterators are dereferenced have type </text>
            <reference id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=">pct_string_view</reference>
            <text> and may contain percent-escapes.</text>
          </para>
          <para>
            <text>Reserved characters in inputs are automatically escaped. Escapes in inputs are preserved.</text>
          </para>
          <para>
            <text>Exceptions are thrown on invalid inputs.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it. Modifications made through the container invalidate some or all iterators:</text>
          </para>
          <unorderedlist>
            <listitem>
              <reference>push_back</reference>
              <text> : Only `end()`.</text>
            </listitem>
            <listitem>
              <reference>assign</reference>
              <text>, </text>
              <reference>clear</reference>
              <text>,        </text>
              <reference>operator=</reference>
              <text> : All elements.</text>
            </listitem>
            <listitem>
              <reference>erase</reference>
              <text> : Erased elements and all        elements after (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>insert</reference>
              <text> : All elements at or after        the insertion point (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>replace</reference>
              <text> : Modified        elements and all elements</text>
              <text>        after (including `end()`).</text>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
            <text>, </text>
            <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
            <text>, </text>
            <reference id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">segments_ref</reference>
            <text>.</text>
          </see>
        </doc>
        <namespace-alias name="const_iterator" id="BvhJXmRgOZW7NW+ayuMQkPsFzbs=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="79"/>
          <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="7gYb+Bz+3qbqiVq+Wm8Ky9M11+o=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="102"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="m0o4b1/DorAvjn3F219/pMLvlyo=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="110"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="5In4EDUuaLDGWzqU/EoIRrGbjkw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="99"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="Qm4R83v/FlItdjfF09x/yy67FzE=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="106"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="AWMsSIW+RTb1aMhvCsG7n58jVHM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="92"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="g/L8mjAHkEezRBezNicBq+kX83A=">
          <file short-path="boost/url/impl/segments_encoded_base.hpp" source-path="include/boost/url/impl/segments_encoded_base.hpp" line="23" class="def"/>
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="76"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
            <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
          </friend>
          <friend id="qs4TNMM406MPgeboXz6oVUmcauE=">
            <befriended id="qs4TNMM406MPgeboXz6oVUmcauE="/>
          </friend>
          <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
            <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="segments_encoded_ref" id="pJuY2rSnHwe5WWhpQ5dCpAgiUVg=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="127" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same url. Ownership is not transferred; the caller is responsible for ensuring the lifetime of the url extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>&amp;this-&gt;url() == &amp;other.url();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="LL0mmbqUIG/Mm8mpyI7ZCu/2FBE=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="160"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the other segments.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by </text>
              <mono>other</mono>
              <text> may overlap the buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The segments to assign.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="iNapL7mxSNYw4GT4gV06GT/kKjY=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="213"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
            </type>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;pct_string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the contents of the initializer list. Reserved characters in the list are automatically escaped. Escapes in the list are preserved.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.encoded_segments() = {&quot;path&quot;, &quot;to&quot;, &quot;file.txt&quot;};</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( init.begin(), init.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>A reference to this.</text>
            </returns>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
            <throws>
              <text>The list contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="operator=" id="LlrZXMnarSUNL3P19PCkOHJPNrQ=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="165"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the other segments.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by </text>
              <mono>other</mono>
              <text> may overlap the buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The segments to assign.</text>
            </param>
          </doc>
        </function>
        <function name="assign" id="4QcdeaZk+adcrX414Bsr53nPIL4=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="326"/>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;pct_string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assign segments</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the contents of the initializer list. Reserved characters in the list are automatically escaped. Escapes in the list are preserved.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.segments().assign( {&quot;path&quot;, &quot;to&quot;, &quot;file.txt&quot;} );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
            <throws>
              <text>The list contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="assign" id="sC4xzDTVLYJRMWprwhg/L3nnhfA=">
            <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="366"/>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Assign segments</text>
              </brief>
              <para>
                <text>The existing contents are replaced by a copy of the contents of the range. Reserved characters in the range are automatically escaped. Escapes in the range are preserved.</text>
              </para>
              <para>
                <text>All iterators are invalidated.</text>
              </para>
              <para class="note">
                <text>None of the character buffers referenced by the range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, pct_string_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <param name="first">
                <text>The first element in the range.</text>
              </param>
              <param name="last">
                <text>One past the last element in the range.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="back" exception-spec="noexcept" id="huIfaMM6sCgNghdm8mALz0WRL3k=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="291"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <para>
              <text>This function returns a string with the last segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="2sagwnDfZ81Ag59U6dlqMfcbRdM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="306"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="77/TrbaxaS3ddWaQsqsrxZgfrtg=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="158"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="KKYw+VvKy1sm99inuPn90KFHN7k=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="284"/>
          <doc>
            <brief>
              <text>Clear the contents of the container</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;url().set_encoded_path( &quot;&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="GHSGkHUPEHCGOkttbtLrNdeJsYw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="199"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).encoded_segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="FX43RoBCFXu84qOmF9qbuAcvL3A=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="320"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="BsLXaBnDItSMBNgV8pc30X0/TnE=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="537"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase segments</text>
            </brief>
            <para>
              <text>This function removes a segment.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed segment.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the element.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="CsDwf/uqlVa7hlApvAf4FGt2j8M=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="561"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="first">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="last">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase segments</text>
            </brief>
            <para>
              <text>This function removes a range of segments from the container.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>first</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed range.</text>
            </returns>
            <param name="first">
              <text>The first element in the range to erase.</text>
            </param>
            <param name="last">
              <text>One past the last element in the range to erase.</text>
            </param>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="bCALqPJXUIOplPZHZ//yQObNCt4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="252"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="insert" id="TliI3AglmvyLdEMFkrJrjUAv9nM=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="405"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="before">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Insert segments</text>
            </brief>
            <para>
              <text>This function inserts a segment before the specified position. Reserved characters in the segment are automatically escaped. Escapes in the segment are preserved.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the inserted segment.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the segment is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="s">
              <text>The segment to insert.</text>
            </param>
            <throws>
              <text>The segment contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="insert" id="2sEwLHnI9RRGyyiqnb7Vjx9qrhM=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="458"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="before">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;pct_string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Insert segments</text>
            </brief>
            <para>
              <text>This function inserts the segments in an initializer list before the specified position. Reserved characters in the list are automatically escaped. Escapes in the list are preserved.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;/file.txt&quot; );

u.encoded_segments().insert( u.encoded_segments().begin(), { &quot;path&quot;, &quot;to&quot; } );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or </text>
              <mono>before</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the list is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="init">
              <text>The list of segments to insert.</text>
            </param>
            <throws>
              <text>The list contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="insert" id="du85+z+tYyUpagKIefWc+fpeYks=">
            <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="509"/>
            <return>
              <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
            </return>
            <param name="before">
              <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Insert segments</text>
              </brief>
              <para>
                <text>This function inserts the segments in a range before the specified position. Reserved characters in the range are automatically escaped. Escapes in the range are preserved.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>before</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>None of the character buffers referenced by the range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, pct_string_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_resource().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>An iterator to the first segment inserted, or </text>
                <mono>before</mono>
                <text> if </text>
                <mono>init.empty()</mono>
                <text>.</text>
              </returns>
              <param name="before">
                <text>An iterator before which the range is inserted. This may be equal to </text>
                <mono>end()</mono>
                <text>.</text>
              </param>
              <param name="first">
                <text>The first element in the range to insert.</text>
              </param>
              <param name="last">
                <text>One past the last element in the range to insert.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="is_absolute" exception-spec="noexcept" id="qPtb3Gf4eUGNjob+VCTNZu3sUr4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="180"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="pop_back" exception-spec="noexcept" id="JlzMZ8Js8HPWqK22W+WU2MR2Yn8=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="778"/>
          <doc>
            <brief>
              <text>Remove the last segment</text>
            </brief>
            <para>
              <text>This function removes the last segment from the container.</text>
            </para>
            <para>
              <text>Iterators to the last segment as well as all end iterators are invalidated.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>!this-&gt;empty()</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="push_back" id="k/+5yJNfDNUOfAvdH+DvTb3aems=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="757"/>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Append a segment</text>
            </brief>
            <para>
              <text>This function appends a segment to the end of the path. Reserved characters in the string are automatically escaped. Escapes in the string are preserved.</text>
            </para>
            <para>
              <text>All end iterators are invalidated.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;back() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <param name="s">
              <text>The segment to append.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="replace" id="cSH8UpR6JdrNaN1ksvNrLn/HVm0=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="594"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces the segment at the specified position. Reserved characters in the string are automatically escaped. Escapes in the string are preserved.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the replaced segment.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the segment.</text>
            </param>
            <param name="s">
              <text>The string to assign.</text>
            </param>
          </doc>
        </function>
        <function name="replace" id="YOSdGvhFD2fK0UePm8DgvTPBl90=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="630"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="from">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="to">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces a range of segments with one segment. Reserved characters in the string are automatically escaped. Escapes in the string are preserved.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the new segment.</text>
            </returns>
            <param name="from">
              <text>The first element in the range of segments to replace.</text>
            </param>
            <param name="to">
              <text>One past the last element in the range of segments to replace.</text>
            </param>
            <param name="s">
              <text>The string to assign.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="replace" id="i8soX0cNijL1JxXw5PLeDEYw9Z4=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="676"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <param name="from">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="to">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;pct_string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces a range of segments with a list of segments in an initializer list. Reserved characters in the list are automatically escaped. Escapes in the list are preserved.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Preconditions</head>
            <para>
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <returns>
              <text>An iterator to the first segment inserted, or one past </text>
              <mono>to</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="from">
              <text>The first element in the range of segments to replace.</text>
            </param>
            <param name="to">
              <text>One past the last element in the range of segments to replace.</text>
            </param>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
            <throws>
              <text>The list contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="replace" id="+MWzM3N1NhK7lfAn6i7klo69b7M=">
            <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="721"/>
            <return>
              <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
            </return>
            <param name="from">
              <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
            </param>
            <param name="to">
              <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Replace segments</text>
              </brief>
              <para>
                <text>This function replaces a range of segments with annother range of segments. Reserved characters in the new range are automatically escaped. Escapes in the new range are preserved.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>from</mono>
                <text> or come after are invalidated.</text>
              </para>
              <head>Preconditions</head>
              <para>
                <text>None of the character buffers referenced by the new range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_resouce().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <returns>
                <text>An iterator to the first segment inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>init.size() == 0</mono>
                <text>.</text>
              </returns>
              <param name="from">
                <text>The first element in the range of segments to replace.</text>
              </param>
              <param name="to">
                <text>One past the last element in the range of segments to replace.</text>
              </param>
              <param name="first">
                <text>The first element in the new range of segments.</text>
              </param>
              <param name="last">
                <text>One past the last element in the new range of segments.</text>
              </param>
              <throws>
                <text>The range contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
        </template>
        <function name="size" exception-spec="noexcept" id="BJwakVSJbowHvD7bCKsCv7Qv2EM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="218"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function name="url" exception-spec="noexcept" id="mXe1gqEV6OcEe9HebGQikLEWj9U=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="251" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the referenced url</text>
            </brief>
            <para>
              <text>This function returns the url referenced by the view.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;/path/to/file.txt&quot; );

assert( &amp;u.encoded_segments().url() == &amp;u );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to the url.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator segments_encoded_view" exception-spec="noexcept" id="wvBe0xFZCPtYti4CtRJetID8Cfo=">
          <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="225"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <returns>
              <text>A view of the segments.</text>
            </returns>
            <see>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="chJ3si+vtHLHOc1xY/5U+6aQTc4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="129" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="segments_encoded_view" id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">
        <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="61" class="def"/>
        <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="24"/>
        <base>
          <type id="qs4TNMM406MPgeboXz6oVUmcauE=" name="segments_encoded_base"/>
        </base>
        <friend id="UGT2YeR0J7z0ZcyG8/VStlmtGhU=">
          <befriended id="UGT2YeR0J7z0ZcyG8/VStlmtGhU="/>
        </friend>
        <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
          <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing path segments in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the path as a bidirectional view of segment strings.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;/path/to/file.txt&quot; );

segments_encoded_view ps = u.encoded_segments();

assert( ps.buffer().data() == u.buffer().data() );</text>
          </code>
          <para>
            <text>Strings produced when elements are returned have type </text>
            <reference id="SMbLJWxhkkCMp2sPkBpWmdnoNGI=">param_pct_view</reference>
            <text> and represent encoded strings. Strings passed to member functions may contain percent escapes, and throw exceptions on invalid inputs.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it.</text>
          </para>
          <see>
            <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
            <text>, </text>
            <reference id="TCUUfRiqZjX62kt7tK2fs//VWr0=">segments_encoded_ref</reference>
            <text>, </text>
            <reference id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">segments_ref</reference>
            <text>.</text>
          </see>
        </doc>
        <namespace-alias name="const_iterator" id="BvhJXmRgOZW7NW+ayuMQkPsFzbs=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="79"/>
          <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="7gYb+Bz+3qbqiVq+Wm8Ky9M11+o=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="102"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="m0o4b1/DorAvjn3F219/pMLvlyo=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="110"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="5In4EDUuaLDGWzqU/EoIRrGbjkw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="99"/>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="Qm4R83v/FlItdjfF09x/yy67FzE=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="106"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="AWMsSIW+RTb1aMhvCsG7n58jVHM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="92"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="g/L8mjAHkEezRBezNicBq+kX83A=">
          <file short-path="boost/url/impl/segments_encoded_base.hpp" source-path="include/boost/url/impl/segments_encoded_base.hpp" line="23" class="def"/>
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="76"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
            <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
          </friend>
          <friend id="qs4TNMM406MPgeboXz6oVUmcauE=">
            <befriended id="qs4TNMM406MPgeboXz6oVUmcauE="/>
          </friend>
          <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
            <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Strings returned by iterators may contain percent escapes. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced refer to the underlying character buffer. Ownership is not transferred; the caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced by any container or iterator.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="segments_encoded_view" id="wB5FLZARVdWOdbpJ8gz6adGJ1pM=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="92" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default-constructed segments have zero elements.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view ps;</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return segments_encoded_view( &quot;&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="segments_encoded_view" exception-spec="noexcept" id="tuJdRclMTym11QreHrg310DMHnI=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="115" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="segments_encoded_view" id="Lh0OOi8ywTpGrLOmwHo1xxGEcUQ=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="167"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs segments from a valid path string, which can contain percent escapes. Upon construction, the view references the character buffer pointed to by </text>
              <mono>s</mono>
              <text>. caller is responsible for ensuring that the lifetime of the buffer extends until the view is destroyed.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view ps( &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return parse_path( s ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path = [ &quot;/&quot; ] [ segment *( &quot;/&quot; segment ) ]

segment = *pchar</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid path.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="segments_encoded_view" exception-spec="noexcept" id="4Dgwl6h3UrhoR+2g4sK4NKVf7Hc=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="213"/>
          <param name="first">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <param name="last">
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function creates a new </text>
              <reference id="selbiXMXP5zkjBMvpX306XR3d14=">segments_encoded_view</reference>
              <text> from a pair of iterators referring to elements of another encoded segments view. The resulting view references the same underlying character buffer as the original.</text>
            </para>
            <para>
              <text>The caller is responsible for ensuring that the lifetime of the original buffer extends until the constructed view is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view ps( &quot;/path/to/file.txt&quot; );

segments_encoded_view sub(
    std::next(ps.begin()),
    ps.end());

// sub represents &quot;to/file.txt&quot;</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>The iterators must be valid and belong to the same </text>
              <reference id="selbiXMXP5zkjBMvpX306XR3d14=">segments_encoded_view</reference>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <para>
              <mono>sub.buffer()</mono>
              <text> references characters in the original </text>
              <mono>ps.buffer()</mono>
              <text>.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>sub.buffer()</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="first">
              <text>The beginning iterator.</text>
            </param>
            <param name="last">
              <text>The ending iterator.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="8pXN2excDq2EJ7VbxNkaGqd9go0=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="242" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <text>Reference to this object</text>
            </returns>
            <param name="other">
              <text>The segments to copy.</text>
            </param>
          </doc>
        </function>
        <function name="back" exception-spec="noexcept" id="huIfaMM6sCgNghdm8mALz0WRL3k=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="291"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <para>
              <text>This function returns a string with the last segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="2sagwnDfZ81Ag59U6dlqMfcbRdM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="306"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="77/TrbaxaS3ddWaQsqsrxZgfrtg=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="158"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the buffer.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="GHSGkHUPEHCGOkttbtLrNdeJsYw=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="199"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).encoded_segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="FX43RoBCFXu84qOmF9qbuAcvL3A=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="320"/>
          <attr id="is-const"/>
          <return>
            <type id="g/L8mjAHkEezRBezNicBq+kX83A=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="bCALqPJXUIOplPZHZ//yQObNCt4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="252"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. The returned string may contain percent escapes.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="is_absolute" exception-spec="noexcept" id="qPtb3Gf4eUGNjob+VCTNZu3sUr4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="180"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="BJwakVSJbowHvD7bCKsCv7Qv2EM=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="218"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).encoded_segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator segments_view" exception-spec="noexcept" id="FpOlQ+VLMkPceEvlT/Y5ixbLG7s=">
          <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="278"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <para>
              <text>This conversion returns a new view which references the same underlying character buffer, and whose iterators and members return ordinary strings with decoding applied to any percent escapes.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view ps = parse_path( &quot;/path/to/file.txt&quot; ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>segments_view( *this ).buffer().data() == this-&gt;buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <text>A view of the segments.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="chJ3si+vtHLHOc1xY/5U+6aQTc4=">
          <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="129" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="segments_ref" id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
        <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="85" class="def"/>
        <base>
          <type id="ge9cOBTN19ywbVTnB5ajdJUC46Q=" name="segments_base"/>
        </base>
        <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
          <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
        </friend>
        <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
          <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing path segments in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the path as a bidirectional view of segments, where each segment is a string with percent escapes automatically decoded.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <para>
            <text>The view is modifiable; calling non-const members causes changes to the referenced url.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url u( &quot;/path/to/file.txt&quot; );

segments_ref ps = u.segments();</text>
          </code>
          <para>
            <text>Percent escapes in strings returned when dereferencing iterators are automatically decoded. Reserved characters in strings supplied to modifier functions are automatically percent-escaped.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it. Modifications made through the container invalidate some or all iterators:</text>
          </para>
          <unorderedlist>
            <listitem>
              <reference>push_back</reference>
              <text> : Only `end()`.</text>
            </listitem>
            <listitem>
              <reference>assign</reference>
              <text>, </text>
              <reference>clear</reference>
              <text>,        </text>
              <reference>operator=</reference>
              <text> : All elements.</text>
            </listitem>
            <listitem>
              <reference>erase</reference>
              <text> : Erased elements and all        elements after (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>insert</reference>
              <text> : All elements at or after        the insertion point (including `end()`).</text>
            </listitem>
            <listitem>
              <reference>replace</reference>
              <text> : Modified        elements and all elements</text>
              <text>        after (including `end()`).</text>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="TCUUfRiqZjX62kt7tK2fs//VWr0=">segments_encoded_ref</reference>
            <text>, </text>
            <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
            <text>, </text>
            <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
            <text>.</text>
          </see>
        </doc>
        <namespace-alias name="const_iterator" id="0tGsE1R1TOpKN9IAKzyNn7msre4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="76"/>
          <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="IwhREgq3doOt5R+7CpjDu5HXeJc=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="99"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="ZGzGSpAZlXL0sCedyhjsT90U4S0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="107"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="yenFqEfqqK2NrZ+2hs1Il0Gkg/Q=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="96"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="q0c7sMK+HhivONBaUVBcT+YLGYQ=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="103"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="28sEF1YglFKmk+Kcl4ymHBd02MI=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="89"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="v0DfmyG7n+onJnPwu0SmkmEIIs4=">
          <file short-path="boost/url/impl/segments_base.hpp" source-path="include/boost/url/impl/segments_base.hpp" line="24" class="def"/>
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="73"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
            <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
          </friend>
          <friend id="ge9cOBTN19ywbVTnB5ajdJUC46Q=">
            <befriended id="ge9cOBTN19ywbVTnB5ajdJUC46Q="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="segments_ref" id="nxBSMlBfKGySbzDTm/u8cZlRsUI=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="124" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="segments_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same url. Ownership is not transferred; the caller is responsible for ensuring the lifetime of the url extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>&amp;this-&gt;url() == &amp;other.url();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="1PGonC8ca/Nb6CSk6xQynqWAXwQ=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="157"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="segments_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="segments_ref" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the other segments.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by </text>
              <mono>other</mono>
              <text> may overlap the buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The segments to assign.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="+pM8OfSmj9bcZr8C7H2/n3i2q7c=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="205"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="segments_ref"/>
            </type>
          </return>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;core::string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the contents of the initializer list. Reserved characters in the list are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.segments() = { &quot;path&quot;, &quot;to&quot;, &quot;file.txt&quot; };</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( init.begin(), init.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="iqCU4nc7T888hTdpOUX2IIuAra4=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="162"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="segments_ref"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the other segments.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by </text>
              <mono>other</mono>
              <text> may overlap the buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;assign( other.begin(), other.end() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>other.buffer().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The segments to assign.</text>
            </param>
          </doc>
        </function>
        <function name="assign" id="jmv/jLLJzcA3XERfiZBze0WECd8=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="313"/>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;core::string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Assign segments</text>
            </brief>
            <para>
              <text>The existing contents are replaced by a copy of the contents of the initializer list. Reserved characters in the list are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by </text>
              <mono>init</mono>
              <text> may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;

u.segments().assign( { &quot;path&quot;, &quot;to&quot;, &quot;file.txt&quot; } );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="assign" id="1mO8vRMU8isq7VD+oX7GFNTSSKs=">
            <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="348"/>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Assign segments</text>
              </brief>
              <para>
                <text>The existing contents are replaced by a copy of the contents of the range. Reserved characters in the range are automatically escaped.</text>
              </para>
              <para>
                <text>All iterators are invalidated.</text>
              </para>
              <para class="note">
                <text>None of the character buffers referenced by the range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, core::string_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <param name="first">
                <text>The beginning of the range of segments to assign.</text>
              </param>
              <param name="last">
                <text>The end of the range of segments to assign.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="back" exception-spec="noexcept" id="SiUbAVvbiztqJmIoYwdvkoQyi90=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="282"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;back().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="RJFHEvDTVOSBEWC5A/qqcBSNc14=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="297"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="v5AF2vYTekOYGThG7Nle0P0fwU4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="155"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string containing the path.</text>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="T88pkBtjum3iYJBQByTdXoPyzjw=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="276"/>
          <doc>
            <brief>
              <text>Clear the contents of the container</text>
            </brief>
            <para>
              <text>All iterators are invalidated.</text>
            </para>
            <head>Effects</head>
            <code>
              <text>this-&gt;url().set_encoded_path( &quot;&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="Bkl327dG/7JY0gyN644pnPkCyj0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="196"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="oBgrqTEOKSIfUQVCZCwbVHu9pe4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="311"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="ry28jZcnbOn9xqooHcGdMYri4RI=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="503"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase segments</text>
            </brief>
            <para>
              <text>This function removes a segment.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed segment.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the segment.</text>
            </param>
          </doc>
        </function>
        <function name="erase" exception-spec="noexcept" id="r1gTyRFDkNhliFkLegBVVeTsqXM=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="528"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="first">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="last">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Erase segments</text>
            </brief>
            <para>
              <text>This function removes a range of segments.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>first</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the removed range.</text>
            </returns>
            <param name="first">
              <text>The beginning of the range to remove.</text>
            </param>
            <param name="last">
              <text>The end of the range to remove.</text>
            </param>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="EZ3AwpJPJ+eUXoULAfCVAA57yQU=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="249"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="insert" id="UFcbKr0/9mzfgNed32nyewDv04g=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="382"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="before">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Insert segments</text>
            </brief>
            <para>
              <text>This function inserts a segment before the specified position. Reserved characters in the segment are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the inserted segment.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the segment is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="s">
              <text>The segment to insert.</text>
            </param>
          </doc>
        </function>
        <function name="insert" id="nGAGqRMRbhZiwWI72JEu5nr4tJs=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="430"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="before">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;core::string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Insert segments</text>
            </brief>
            <para>
              <text>This function inserts the segments in an initializer list before the specified position. Reserved characters in the list are percent-escaped in the result.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>before</mono>
              <text> or come after are invalidated.</text>
            </para>
            <para class="note">
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;/file.txt&quot; );

u.segments().insert( u.segments().begin(), { &quot;path&quot;, &quot;to&quot; } );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_resource().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the first element inserted, or </text>
              <mono>before</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="before">
              <text>An iterator before which the list is inserted. This may be equal to </text>
              <mono>end()</mono>
              <text>.</text>
            </param>
            <param name="init">
              <text>The list of segments to insert.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="insert" id="dou6hXskL/iyVwdF5Jbixl7OQFY=">
            <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="475"/>
            <return>
              <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
            </return>
            <param name="before">
              <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Insert segments</text>
              </brief>
              <para>
                <text>This function inserts the segments in a range before the specified position. Reserved characters in the list are automatically escaped.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>before</mono>
                <text> or come after are invalidated.</text>
              </para>
              <para class="note">
                <text>None of the character buffers referenced by the range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Mandates</head>
              <code>
                <text>std::is_convertible&lt; std::iterator_traits&lt; FwdIt &gt;::reference_type, core::string_view &gt;::value == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_resource().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>An iterator to the first segment inserted, or </text>
                <mono>before</mono>
                <text> if </text>
                <mono>init.empty()</mono>
                <text>.</text>
              </returns>
              <param name="before">
                <text>An iterator before which the range is inserted. This may be equal to </text>
                <mono>end()</mono>
                <text>.</text>
              </param>
              <param name="first">
                <text>The beginning of the range of segments to insert.</text>
              </param>
              <param name="last">
                <text>The end of the range of segments to insert.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="is_absolute" exception-spec="noexcept" id="G6s0M4MqJFqoPBxyx/2YT3jn4W8=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="pop_back" exception-spec="noexcept" id="+a4Rj4DZHhwXrfe1x6L8Q14NlZM=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="722"/>
          <doc>
            <brief>
              <text>Remove the last segment</text>
            </brief>
            <para>
              <text>This function removes the last segment from the container.</text>
            </para>
            <para>
              <text>Iterators to the last segment as well as all end iterators are invalidated.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>not this-&gt;empty()</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function name="push_back" id="p+DBZZu3QuesD/ekEuyMjTorERE=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="701"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Append a segment</text>
            </brief>
            <para>
              <text>This function appends a segment to the end of the path. Reserved characters in the string are automatically escaped.</text>
            </para>
            <para>
              <text>All end iterators are invalidated.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;back() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="s">
              <text>The segment to append.</text>
            </param>
          </doc>
        </function>
        <function name="replace" id="Xc7GRtURrDuIx9hU5zwjeuPO+8Q=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="560"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="pos">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces the segment at the specified position. Reserved characters in the string are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>pos</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the replaced segment.</text>
            </returns>
            <param name="pos">
              <text>An iterator to the segment.</text>
            </param>
            <param name="s">
              <text>The string to assign.</text>
            </param>
          </doc>
        </function>
        <function name="replace" id="S2FK13kWWDfcPxOgjxbi3h2Sltw=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="591"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="from">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="to">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces a range of segments with one segment. Reserved characters in the string are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the new segment.</text>
            </returns>
            <param name="from">
              <text>The beginning of the range of segments to replace.</text>
            </param>
            <param name="to">
              <text>The end of the range of segments to replace.</text>
            </param>
            <param name="s">
              <text>The string to assign.</text>
            </param>
          </doc>
        </function>
        <function name="replace" id="IJ6Vu12OFGjGPmnV9h7THG7k83c=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="632"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <param name="from">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="to">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="init">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;core::string_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Replace segments</text>
            </brief>
            <para>
              <text>This function replaces a range of segments with a list of segments in an initializer list. Reserved characters in the list are automatically escaped.</text>
            </para>
            <para>
              <text>All iterators that are equal to </text>
              <mono>from</mono>
              <text> or come after are invalidated.</text>
            </para>
            <head>Preconditions</head>
            <para>
              <text>None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>init.size() + this-&gt;url().encoded_resouce().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>An iterator to the first segment inserted, or one past </text>
              <mono>to</mono>
              <text> if </text>
              <mono>init.size() == 0</mono>
              <text>.</text>
            </returns>
            <param name="from">
              <text>The beginning of the range of segments to replace.</text>
            </param>
            <param name="to">
              <text>The end of the range of segments to replace.</text>
            </param>
            <param name="init">
              <text>The list of segments to assign.</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="FwdIt" class="type"/>
          <function name="replace" id="e0Co52pl+qsDVNfc3Vu3Cy3GyZM=">
            <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="672"/>
            <return>
              <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
            </return>
            <param name="from">
              <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
            </param>
            <param name="to">
              <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
            </param>
            <param name="first">
              <type name="FwdIt"/>
            </param>
            <param name="last">
              <type name="FwdIt"/>
            </param>
            <doc>
              <brief>
                <text>Replace segments</text>
              </brief>
              <para>
                <text>This function replaces a range of segments with annother range of segments. Reserved characters in the new range are automatically escaped.</text>
              </para>
              <para>
                <text>All iterators that are equal to </text>
                <mono>from</mono>
                <text> or come after are invalidated.</text>
              </para>
              <head>Preconditions</head>
              <para>
                <text>None of the character buffers referenced by the new range may overlap the character buffer of the underlying url, or else the behavior is undefined.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>std::distance( first, last ) + this-&gt;url().encoded_resouce().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>An iterator to the first segment inserted, or one past </text>
                <mono>to</mono>
                <text> if </text>
                <mono>init.size() == 0</mono>
                <text>.</text>
              </returns>
              <param name="from">
                <text>The beginning of the range of segments to replace.</text>
              </param>
              <param name="to">
                <text>The end of the range of segments to replace.</text>
              </param>
              <param name="first">
                <text>The beginning of the range of segments to assign.</text>
              </param>
              <param name="last">
                <text>The end of the range of segments to assign.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="size" exception-spec="noexcept" id="yBM8jUZ7lUhztKUrKAMCVlF/JSM=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="215"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function name="url" exception-spec="noexcept" id="t+7RWQooKrtJXGKQJu70HNfs5V0=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="243" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the referenced url</text>
            </brief>
            <para>
              <text>This function returns the url referenced by the view.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;/path/to/file.txt&quot; );

assert( &amp;u.segments().url() == &amp;u );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to the url.</text>
            </returns>
          </doc>
        </function>
        <function class="conversion" name="operator segments_view" exception-spec="noexcept" id="Yjmz7FLx2FKEMNm77t8koOdVeiw=">
          <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="217"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Conversion</text>
            </brief>
            <returns>
              <text>A view of the segments.</text>
            </returns>
            <see>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="4eJ21Hl5fc2lKip4HsTT2daKD58=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="126" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <class name="segments_view" id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">
        <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="55" class="def"/>
        <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="24"/>
        <base>
          <type id="ge9cOBTN19ywbVTnB5ajdJUC46Q=" name="segments_base"/>
        </base>
        <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
          <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
        </friend>
        <friend id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">
          <befriended id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <doc>
          <brief>
            <text>A view representing path segments in a URL</text>
          </brief>
          <para>
            <text>Objects of this type are used to interpret the path as a bidirectional view of segment strings.</text>
          </para>
          <para>
            <text>The view does not retain ownership of the elements and instead references the original character buffer. The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;/path/to/file.txt&quot; );

segments_view ps = u.segments();

assert( ps.buffer().data() == u.buffer().data() );</text>
          </code>
          <para>
            <text>Percent escapes in strings returned when dereferencing iterators are automatically decoded.</text>
          </para>
          <head>Iterator Invalidation</head>
          <para>
            <text>Changes to the underlying character buffer can invalidate iterators which reference it.</text>
          </para>
          <see>
            <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
            <text>, </text>
            <reference id="TCUUfRiqZjX62kt7tK2fs//VWr0=">segments_encoded_ref</reference>
            <text>, </text>
            <reference id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">segments_ref</reference>
            <text>.</text>
          </see>
        </doc>
        <namespace-alias name="const_iterator" id="0tGsE1R1TOpKN9IAKzyNn7msre4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="76"/>
          <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="const_reference" id="IwhREgq3doOt5R+7CpjDu5HXeJc=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="99"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="difference_type" id="ZGzGSpAZlXL0sCedyhjsT90U4S0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="107"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
          <doc>
            <brief>
              <text>A signed integer type used to represent differences.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="reference" id="yenFqEfqqK2NrZ+2hs1Il0Gkg/Q=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="96"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The reference type</text>
            </brief>
            <para>
              <text>This is the type of value returned when iterators of the view are dereferenced.</text>
            </para>
          </doc>
        </namespace-alias>
        <namespace-alias name="size_type" id="q0c7sMK+HhivONBaUVBcT+YLGYQ=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="103"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          <doc>
            <brief>
              <text>An unsigned integer type used to represent size.</text>
            </brief>
          </doc>
        </namespace-alias>
        <namespace-alias name="value_type" id="28sEF1YglFKmk+Kcl4ymHBd02MI=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="89"/>
          <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          <doc>
            <brief>
              <text>The value type</text>
            </brief>
            <para>
              <text>Values of this type represent a segment where unique ownership is retained by making a copy.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_base::value_type ps( url_view( &quot;/path/to/file.txt&quot; ).segments().back() );</text>
            </code>
          </doc>
        </namespace-alias>
        <class name="iterator" id="v0DfmyG7n+onJnPwu0SmkmEIIs4=">
          <file short-path="boost/url/impl/segments_base.hpp" source-path="include/boost/url/impl/segments_base.hpp" line="24" class="def"/>
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="73"/>
          <friend id="T/F7KeOYUTv4+tRVY0biDvq/yFw=">
            <befriended id="T/F7KeOYUTv4+tRVY0biDvq/yFw="/>
          </friend>
          <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
            <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
          </friend>
          <friend id="ge9cOBTN19ywbVTnB5ajdJUC46Q=">
            <befriended id="ge9cOBTN19ywbVTnB5ajdJUC46Q="/>
          </friend>
          <doc>
            <brief>
              <text>A Bidirectional iterator to a path segment</text>
            </brief>
            <para>
              <text>Objects of this type allow iteration through the segments in the path. Any percent-escapes in returned strings are decoded first. The values returned are read-only; changes to segments must be made through the container instead, if the container supports modification.</text>
            </para>
            <para>
              <text>The strings produced when iterators are dereferenced belong to the iterator and become invalidated when that particular iterator is incremented, decremented, or destroyed.</text>
            </para>
          </doc>
        </class>
        <function class="constructor" name="segments_view" id="xup3nwwyorPFymGBU7c4wNwY6Io=">
          <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="87" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default-constructed segments have zero elements.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view ps;</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return segments_view( &quot;&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
          </doc>
        </function>
        <function class="constructor" name="segments_view" id="0cHQ+7V5eDQgnGquC1jWEshsR58=">
          <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="113" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, viewss reference the same underlying character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="segments_view" id="6Iuf1/aBc8j1vZPIdZUI+IuUksE=">
          <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="165"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs segments from a valid path string, which can contain percent escapes. Upon construction, the view references the character buffer pointed to by </text>
              <mono>s</mono>
              <text>. caller is responsible for ensuring that the lifetime of the buffer extends until the view is destroyed.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view ps( &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return parse_path( s ).value();</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path = [ &quot;/&quot; ] [ segment *( &quot;/&quot; segment ) ]

segment = *pchar</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid path.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="segments_view" exception-spec="noexcept" id="rsFmGNGj/sKltk1KFytGNrY5TZs=">
          <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="211"/>
          <param name="first">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <param name="last">
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function creates a new </text>
              <reference id="ydzw5w8huQuG9pteNJoeKOKbYR8=">segments_view</reference>
              <text> from a pair of iterators referring to elements of another segments view. The resulting view references the same underlying character buffer as the original.</text>
            </para>
            <para>
              <text>The caller is responsible for ensuring that the lifetime of the original buffer extends until the constructed view is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view ps( &quot;/path/to/file.txt&quot; );

segments_view sub(
    std::next(ps.begin()),
    ps.end());

// sub represents &quot;to/file.txt&quot;</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>The iterators must be valid and belong to the same </text>
              <reference id="ydzw5w8huQuG9pteNJoeKOKbYR8=">segments_view</reference>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <para>
              <mono>sub.buffer()</mono>
              <text> references characters in the original </text>
              <mono>ps.buffer()</mono>
              <text>.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>sub.buffer()</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="first">
              <text>The beginning iterator.</text>
            </param>
            <param name="last">
              <text>The ending iterator.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="FWGpy6a5UHxn4hL/tsnvXl0/+fs=">
          <file short-path="boost/url/segments_view.hpp" source-path="include/boost/url/segments_view.hpp" line="240" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer.</text>
            </para>
            <para>
              <text>Ownership is not transferred; the caller is responsible for ensuring the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="back" exception-spec="noexcept" id="SiUbAVvbiztqJmIoYwdvkoQyi90=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="282"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the last segment</text>
            </brief>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().back() == &quot;file.txt&quot; );</text>
            </code>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *--end();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;back().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="begin" exception-spec="noexcept" id="RJFHEvDTVOSBEWC5A/qqcBSNc14=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="297"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the beginning</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text> or constant if </text>
              <mono>this-&gt;empty()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to the first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="v5AF2vYTekOYGThG7Nle0P0fwU4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="155"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the referenced character buffer.</text>
            </brief>
            <para>
              <text>This function returns the character buffer referenced by the view. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string containing the path.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="Bkl327dG/7JY0gyN644pnPkCyj0=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="196"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if there are no segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( ! url_view( &quot;/index.htm&quot; ).segments().empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if there are no segments, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="end" exception-spec="noexcept" id="oBgrqTEOKSIfUQVCZCwbVHu9pe4=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="311"/>
          <attr id="is-const"/>
          <return>
            <type id="v0DfmyG7n+onJnPwu0SmkmEIIs4=" name="iterator"/>
          </return>
          <doc>
            <brief>
              <text>Return an iterator to the end</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>An iterator to one past the last segment.</text>
            </returns>
          </doc>
        </function>
        <function name="front" exception-spec="noexcept" id="EZ3AwpJPJ+eUXoULAfCVAA57yQU=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="249"/>
          <attr id="is-const"/>
          <return>
            <type id="a9JxwNnA7OH+Xwkna7uYgB3ILOw=" name="std::string"/>
          </return>
          <doc>
            <brief>
              <text>Return the first segment</text>
            </brief>
            <para>
              <text>This function returns a string with the first segment of the path without any leading or trailing &apos;/&apos; separators. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Preconditions</head>
            <code>
              <text>this-&gt;empty() == false</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return *begin();</text>
            </code>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().front() == &quot;path&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;front().size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>The first segment.</text>
            </returns>
          </doc>
        </function>
        <function name="is_absolute" exception-spec="noexcept" id="G6s0M4MqJFqoPBxyx/2YT3jn4W8=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="177"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Returns true if this references an absolute path.</text>
            </brief>
            <para>
              <text>Absolute paths always start with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().is_absolute() == true );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, otherwise </text>
              <mono>false</mono>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="yBM8jUZ7lUhztKUrKAMCVlF/JSM=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="215"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of segments</text>
            </brief>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).segments().size() == 3 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of segments.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="4eJ21Hl5fc2lKip4HsTT2daKD58=">
          <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="126" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a path, not including any null terminator.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
      </class>
      <template>
        <tparam name="Capacity" class="constant" type="std::size_t"/>
        <class name="static_url" id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">
          <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="106" class="def"/>
          <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="56"/>
          <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="23"/>
          <base>
            <type id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=" name="static_url_base"/>
          </base>
          <friend id="1wJEkqI+sVpOJW70o+PieNr7YZc=">
            <befriended id="1wJEkqI+sVpOJW70o+PieNr7YZc="/>
          </friend>
          <doc>
            <brief>
              <text>A modifiable container for a URL.</text>
            </brief>
            <para>
              <text>This container owns a url, represented by an inline, null-terminated character buffer with fixed capacity. The contents may be inspected and modified, and the implementation maintains a useful invariant: changes to the url always leave it in a valid state.</text>
            </para>
            <head>Example</head>
            <code>
              <text>static_url&lt; 1024 &gt; u( &quot;https://www.example.com&quot; );</text>
            </code>
            <head>Invariants</head>
            <code>
              <text>this-&gt;capacity() == Capacity + 1</text>
            </code>
            <tparam name="Capacity">
              <text>The maximum capacity in characters, not including the null terminator.</text>
            </tparam>
            <see>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <text>, </text>
              <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
              <text>.</text>
            </see>
            <related>
              <reference id="K7ofEKM2bNb4ZS9OFo0DX+7Ep9I=">format_to</reference>
              <reference id="ueXaMbO5jFzZWelOn6upDJcN55Y=">format_to</reference>
              <reference id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">operator!=</reference>
              <reference id="Si07vh35lnvnJy8tpXUIpiFEjGM=">operator&lt;</reference>
              <reference id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">operator&lt;=</reference>
              <reference id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">operator==</reference>
              <reference id="ngGy21anUjaZiQQJidHT5lvOC2w=">operator&gt;</reference>
              <reference id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">operator&gt;=</reference>
              <reference id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">resolve</reference>
            </related>
          </doc>
          <function class="constructor" name="static_url" exception-spec="noexcept" id="mEkgYHAc/HYClOyXcF9nTEfpbP4=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="165" class="def"/>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>Default constructed urls contain a zero-length string. This matches the grammar for a relative-ref with an empty path and no query or fragment.</text>
              </para>
              <head>Example</head>
              <code>
                <text>static_url&lt; 1024 &gt; u;</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;empty() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
            </doc>
          </function>
          <function class="constructor" name="static_url" exception-spec="noexcept" id="n2/to9j8CotfITBMUa6mO/VikSc=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="243" class="def"/>
            <param name="u">
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>The newly constructed object contains a copy of </text>
                <mono>u</mono>
                <text>.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer.data() != u.buffer().data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>u.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <param name="u">
                <text>The url to copy.</text>
              </param>
            </doc>
          </function>
          <function class="constructor" name="static_url" explicit-spec="explicit" id="ggZkLD7wiXC1v7fr28mqgIniaL0=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="217" class="def"/>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This function constructs a url from the string </text>
                <mono>s</mono>
                <text>, which must contain a valid </text>
                <italic>URI</italic>
                <text> or </text>
                <italic>relative-ref</italic>
                <text> or else an exception is thrown. The new url retains ownership by making a copy of the passed string.</text>
              </para>
              <head>Example</head>
              <code>
                <text>static_url&lt; 1024 &gt; u( &quot;https://www.example.com&quot; );</text>
              </code>
              <head>Effects</head>
              <code>
                <text>return static_url( parse_uri_reference( s ).value() );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;buffer().data() != s.data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.1">4.1. URI Reference</link>
                </listitem>
              </unorderedlist>
              <param name="s">
                <text>The string to parse.</text>
              </param>
              <throws>
                <text>The input does not contain a valid url.</text>
              </throws>
            </doc>
          </function>
          <function class="constructor" name="static_url" id="vNUaO1bY7ac8xTQ7BeZb6STvikU=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="271" class="def"/>
            <param name="u">
              <type class="lvalue-reference">
                <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>The newly constructed object contains a copy of </text>
                <mono>u</mono>
                <text>.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer.data() != u.buffer().data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>u.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Exception thrown if capacity exceeded.</text>
              </para>
              <param name="u">
                <text>The url to copy.</text>
              </param>
              <throws>
                <text>Capacity would be exceeded.</text>
              </throws>
            </doc>
          </function>
          <function class="destructor" name="~static_url" id="UJqneUQSMdwOiE39fVUkGksoIMI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="130" class="def"/>
            <attr id="is-defaulted"/>
            <attr id="is-explicitly-defaulted"/>
            <doc>
              <brief>
                <text>Destructor</text>
              </brief>
              <para>
                <text>Any params, segments, iterators, or views which reference this object are invalidated. The underlying character buffer is destroyed, invalidating all references to it.</text>
              </para>
            </doc>
          </function>
          <function name="operator=" exception-spec="noexcept" id="ZbZVVtfA1JKtM1dcN2cV7GcXCZY=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="299" class="def"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="u">
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Assignment</text>
              </brief>
              <para>
                <text>The contents of </text>
                <mono>u</mono>
                <text> are copied and the previous contents of </text>
                <mono>this</mono>
                <text> are discarded. Capacity remains unchanged.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>u.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A reference to this object.</text>
              </returns>
              <param name="u">
                <text>The url to copy.</text>
              </param>
            </doc>
          </function>
          <function name="operator=" id="xHg0bhQF0gPax0+KtdpIwbK2efA=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="332" class="def"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="u">
              <type class="lvalue-reference">
                <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Assignment</text>
              </brief>
              <para>
                <text>The contents of </text>
                <mono>u</mono>
                <text> are copied and the previous contents of </text>
                <mono>this</mono>
                <text> are discarded.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>u.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Exception thrown if capacity exceeded.</text>
              </para>
              <returns>
                <text>A reference to this object.</text>
              </returns>
              <param name="u">
                <text>The url to copy.</text>
              </param>
              <throws>
                <text>Capacity would be exceeded.</text>
              </throws>
            </doc>
          </function>
          <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
            <attr id="is-const"/>
            <return>
              <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the authority</text>
              </brief>
              <para>
                <text>This function returns the authority as an </text>
                <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>An authority_view representing the authority.</text>
              </returns>
              <see>
                <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
                <text>, </text>
                <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the url string</text>
              </brief>
              <para>
                <text>This function returns the entire url, which may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>The url as a string.</text>
              </returns>
            </doc>
          </function>
          <function name="c_str" exception-spec="noexcept" id="OUdGewqojyZZ2vohOsR/ce3sgdM=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="128" class="def"/>
            <attr id="is-const"/>
            <return>
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Return the url as a null-terminated string</text>
              </brief>
              <para>
                <text>This function returns a pointer to a null terminated string representing the url, which may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( std::strlen( url( &quot;http://www.example.com&quot; ).c_str() ) == 22 );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A pointer to a null-terminated string containing the URL.</text>
              </returns>
            </doc>
          </function>
          <function name="capacity" exception-spec="noexcept" id="FPqXKVymUm0eRCsXV1yuMFlv4ug=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="147" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </return>
            <doc>
              <brief>
                <text>Return the number of characters that can be stored without reallocating</text>
              </brief>
              <para>
                <text>This does not include the null terminator, which is always present.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="clear" exception-spec="noexcept" id="PMYRGpyOUt7hbDyd33GRHTcxEj8=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="166" class="def"/>
            <doc>
              <brief>
                <text>Clear the contents while preserving the capacity</text>
              </brief>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;empty() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>No-throw guarantee.</text>
              </para>
            </doc>
          </function>
          <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
            <attr id="is-const"/>
            <return>
              <type name="int"/>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the result of comparing this with another url</text>
              </brief>
              <para>
                <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>min( u0.size(), u1.size() )</mono>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>-1 if </text>
                <mono>*this &lt; other</mono>
                <text>, 0 if </text>
                <mono>this == other</mono>
                <text>, and 1 if </text>
                <mono>this &gt; other</mono>
                <text>.</text>
              </returns>
              <param name="other">
                <text>The url to compare</text>
              </param>
            </doc>
          </function>
          <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
            <attr id="is-const"/>
            <return>
              <type class="pointer">
                <pointee-type name="char" cv-qualifiers="const"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Return a pointer to the url&apos;s character buffer</text>
              </brief>
              <para>
                <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A pointer to the first character.</text>
              </returns>
            </doc>
          </function>
          <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if the url is empty</text>
              </brief>
              <para>
                <text>The empty string matches the </text>
                <italic>relative-ref</italic>
                <text> grammar.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;&quot; ).empty() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the url is empty.</text>
              </returns>
            </doc>
          </function>
          <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the authority.</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The authority as a string.</text>
              </returns>
              <see>
                <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
                <text>, </text>
                <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <see>
                <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
            </doc>
          </function>
          <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                  <text>        The returned string may contain</text>
                  <text>        percent escapes.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
            </doc>
          </function>
          <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the host and port</text>
              </brief>
              <para>
                <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host and port portion of the url.</text>
              </returns>
              <see>
                <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
                <text>, </text>
                <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
                <text>, </text>
                <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a percent-encoded string.</text>
              </returns>
            </doc>
          </function>
          <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the origin</text>
              </brief>
              <para>
                <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>The origin portion of the url.</text>
              </returns>
              <see>
                <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
                <text>, </text>
                <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_params" exception-spec="noexcept" id="aMmTh8VyfWGYracYniHLsug6OhI=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2301"/>
            <return>
              <type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
            </return>
            <doc>
              <brief>
                <text>Return the query as a container of parameters</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
              </para>
              <head>Example</head>
              <code>
                <text>params_encoded_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
                <text>, </text>
                <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
                <text>, </text>
                <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_params" exception-spec="noexcept" id="JE/K4m/Ht4rR+eX6GaLeumryMhM=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2249" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the query as a container of parameters</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A bidirectional view of key/value pairs.</text>
              </returns>
              <see>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
                <text>, </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>, </text>
                <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the resource</text>
              </brief>
              <para>
                <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The resource portion of the url.</text>
              </returns>
              <see>
                <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
                <text>, </text>
                <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_segments" exception-spec="noexcept" id="6FgVEvfQ0X7vaJ9TLmk6h3MBVPU=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2015"/>
            <return>
              <type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
            </return>
            <doc>
              <brief>
                <text>Return the path as a container of segments</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments_encoded_ref sv = u.encoded_segments();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>, </text>
                <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
                <text>, </text>
                <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
                <text>, </text>
                <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_segments" exception-spec="noexcept" id="5da2HmyZRkzKje3uZJyQ0Zr/GBI=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2019" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the path as a container of segments</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A bidirectional view of encoded segments.</text>
              </returns>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
                <text>, </text>
                <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
                <text>, </text>
                <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the target</text>
              </brief>
              <para>
                <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The target portion of the url.</text>
              </returns>
              <see>
                <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
                <text>, </text>
                <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
            <attr id="is-const"/>
            <return>
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a percent-encoded string.</text>
              </returns>
            </doc>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the fragment</text>
                </brief>
                <para>
                  <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
                </para>
                <para>
                  <text>This function accepts an optional </text>
                  <italic>StringToken</italic>
                  <text> parameter which controls the return type and behavior of the function:</text>
                </para>
                <unorderedlist>
                  <listitem>
                    <text>When called with no arguments,</text>
                    <text>        the return type of the function is</text>
                    <text>        `std::string`. Otherwise</text>
                  </listitem>
                  <listitem>
                    <text>When called with a string token,</text>
                    <text>        the behavior and return type of the</text>
                    <text>        function depends on the type of string</text>
                    <text>        token being passed.</text>
                  </listitem>
                </unorderedlist>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;fragment().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The fragment portion of the url.</text>
                </returns>
                <param name="token">
                  <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                  <mono>std::string</mono>
                  <text>.</text>
                </param>
                <see>
                  <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                  <text>, </text>
                  <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if an authority is present</text>
              </brief>
              <para>
                <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the url contains an authority.</text>
              </returns>
              <see>
                <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
                <text>, </text>
                <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if a fragment is present</text>
              </brief>
              <para>
                <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the url contains a fragment.</text>
              </returns>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if a password is present</text>
              </brief>
              <para>
                <text>This function returns true if the userinfo is present and contains a password.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the userinfo contains a password.</text>
              </returns>
              <see>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if a port is present</text>
              </brief>
              <para>
                <text>This function returns true if an authority is present and contains a port.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if a port is present, </text>
                <mono>false</mono>
                <text> otherwise.</text>
              </returns>
              <see>
                <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
                <text>, </text>
                <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
                <text>, </text>
                <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if a query is present</text>
              </brief>
              <para>
                <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if a query is present.</text>
              </returns>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>, </text>
                <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true a scheme is present</text>
              </brief>
              <para>
                <text>This function returns true if this contains a scheme.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the url contains a scheme.</text>
              </returns>
              <see>
                <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
                <text>, </text>
                <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if a userinfo is present</text>
              </brief>
              <para>
                <text>This function returns true if this contains a userinfo.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the userinfo is present.</text>
              </returns>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the host</text>
                </brief>
                <para>
                  <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;host().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The host address as a string.</text>
                </returns>
                <param name="token">
                  <text>A string token customization</text>
                </param>
              </doc>
            </function>
          </template>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the host</text>
                </brief>
                <para>
                  <text>The value returned by this function depends on the type of host returned from the function </text>
                  <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                  <text>.</text>
                </para>
                <unorderedlist>
                  <listitem>
                    <text>If the type is </text>
                    <reference>host_type::ipv4</reference>
                    <text>,        then the IPv4 address string is returned.</text>
                  </listitem>
                  <listitem>
                    <text>If the type is </text>
                    <reference>host_type::ipv6</reference>
                    <text>,        then the IPv6 address string is returned,</text>
                    <text>        without any enclosing brackets.</text>
                  </listitem>
                  <listitem>
                    <text>If the type is </text>
                    <reference>host_type::ipvfuture</reference>
                    <text>,        then the IPvFuture address string is returned,</text>
                    <text>        without any enclosing brackets.</text>
                  </listitem>
                  <listitem>
                    <text>If the type is </text>
                    <reference>host_type::name</reference>
                    <text>,        then the host name string is returned.</text>
                    <text>        Any percent-escapes in the string are</text>
                    <text>        decoded first.</text>
                  </listitem>
                  <listitem>
                    <text>If the type is </text>
                    <reference>host_type::none</reference>
                    <text>,        then an empty string is returned.</text>
                  </listitem>
                </unorderedlist>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;host_address().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The host address as a string.</text>
                </returns>
                <param name="token">
                  <text>A string token customization</text>
                </param>
              </doc>
            </function>
          </template>
          <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
            <attr id="is-const"/>
            <return>
              <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
            </return>
            <doc>
              <brief>
                <text>Return the host IPv4 address</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
                <text>, this function returns the address as a value of type </text>
                <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
                <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The IPv4 address as a value of type </text>
                <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
                <text>.</text>
              </returns>
            </doc>
          </function>
          <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
            <attr id="is-const"/>
            <return>
              <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
            </return>
            <doc>
              <brief>
                <text>Return the host IPv6 address</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the address as a value of type </text>
                <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
                <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The IPv6 address as a value of type </text>
                <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
                <text>.</text>
              </returns>
            </doc>
          </function>
          <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the host IPvFuture address</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
                <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The IPvFuture address as a string.</text>
              </returns>
            </doc>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the host name</text>
                </brief>
                <para>
                  <text>If the host type is </text>
                  <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                  <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;host_name().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The host name as a string.</text>
                </returns>
                <param name="token">
                  <text>A string token customization.</text>
                </param>
              </doc>
            </function>
          </template>
          <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
            </return>
            <doc>
              <brief>
                <text>Return the host type</text>
              </brief>
              <para>
                <text>This function returns one of the following constants representing the type of host present.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <reference>host_type::ipv4</reference>
                </listitem>
                <listitem>
                  <reference>host_type::ipv6</reference>
                </listitem>
                <listitem>
                  <reference>host_type::ipvfuture</reference>
                </listitem>
                <listitem>
                  <reference>host_type::name</reference>
                </listitem>
                <listitem>
                  <reference>host_type::none</reference>
                </listitem>
              </unorderedlist>
              <para>
                <text>When </text>
                <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
                <text> is false, the host type is </text>
                <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The type of host present.</text>
              </returns>
            </doc>
          </function>
          <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="bool"/>
            </return>
            <doc>
              <brief>
                <text>Return true if the path is absolute</text>
              </brief>
              <para>
                <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>true</mono>
                <text> if the path is absolute, </text>
                <mono>false</mono>
                <text> otherwise.</text>
              </returns>
              <see>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
                <text>, </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="normalize" id="L2Z21HVmwJtKqNOMTyQFY4JQ+1o=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="431" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL components</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to all components of the URL.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="normalize_authority" id="qk2f0tqyaZwxuSA2dS+0Zj9T+5w=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="435" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL authority</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to the URL authority.</text>
              </para>
              <para>
                <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="normalize_fragment" id="9CJcPfVnJvVk0zBf34CB8xfETIg=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="441" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL fragment</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to the URL fragment.</text>
              </para>
              <para>
                <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="normalize_path" id="1gxbOWXXkNcHf0a7aqVLoeQbw4w=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="437" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL path</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to the URL path.</text>
              </para>
              <para>
                <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded. Redundant path-segments are removed.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="normalize_query" id="bi805EoX8OTri5KIPxrlqmiZtE8=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="439" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL query</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to the URL query.</text>
              </para>
              <para>
                <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="normalize_scheme" id="QIsV9n6MWFnqA0MZenHn3zX9jt8=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="433" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Normalize the URL scheme</text>
              </brief>
              <para>
                <text>Applies Syntax-based normalization to the URL scheme.</text>
              </para>
              <para>
                <text>The scheme is normalized to lowercase.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="params" exception-spec="noexcept" id="MYfnAHxNPsNhl4M31kQzwrirB9M=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2183"/>
            <return>
              <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
            </return>
            <doc>
              <brief>
                <text>Return the query as a container of parameters</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
              </para>
              <head>Example</head>
              <code>
                <text>params_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
                <text>, </text>
                <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
                <text>, </text>
                <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="params" exception-spec="noexcept" id="s9dRuYwynzv+XH3wi5E1LonuuYk=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2187" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the query as a container of parameters</text>
              </brief>
              <returns>
                <text>A bidirectional view of key/value pairs.</text>
              </returns>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="params" exception-spec="noexcept" id="yOAcBK51dE1EJqsBF6ZGTSEnocA=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2245"/>
            <return>
              <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
            </return>
            <param name="opt">
              <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
            </param>
            <doc>
              <brief>
                <text>Return the query as a container of parameters</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
              </para>
              <head>Example</head>
              <code>
                <text>encoding_opts opt;
opt.space_as_plus = true;
params_ref pv = url( &quot;/sql?id=42&amp;name=jane+doe&amp;page+size=20&quot; ).params(opt);</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A range of references to the parameters.</text>
              </returns>
              <param name="opt">
                <text>The options for decoding. If this parameter is omitted, the </text>
                <mono>space_as_plus</mono>
                <text> is used.</text>
              </param>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
                <text>, </text>
                <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
                <text>, </text>
                <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
            <attr id="is-const"/>
            <return>
              <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
            </return>
            <param name="opt">
              <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
            </param>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the password</text>
                </brief>
                <para>
                  <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;password().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The password as a string.</text>
                </returns>
                <param name="token">
                  <text>The string token to use.</text>
                </param>
                <see>
                  <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                  <text>, </text>
                  <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                  <text>, </text>
                  <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                  <text>, </text>
                  <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                  <text>, </text>
                  <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                  <text>, </text>
                  <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                  <text>, </text>
                  <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the path</text>
                </brief>
                <para>
                  <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;path().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The path as a string.</text>
                </returns>
                <param name="token">
                  <text>A string token to use for the result.</text>
                </param>
                <see>
                  <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                  <text>, </text>
                  <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                  <text>, </text>
                  <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                  <text>. </text>
                  <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
            <attr id="is-const"/>
            <return>
              <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
            </return>
            <doc>
              <brief>
                <text>Return a shared, persistent copy of the url</text>
              </brief>
              <para>
                <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
              </para>
              <head>Example</head>
              <code>
                <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <returns>
                <text>A shared pointer to a read-only url_view.</text>
              </returns>
            </doc>
          </function>
          <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the port</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>port        = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The port as a string.</text>
              </returns>
              <see>
                <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
                <text>, </text>
                <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
                <text>, </text>
                <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
            <attr id="is-const"/>
            <return>
              <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
            </return>
            <doc>
              <brief>
                <text>Return the port</text>
              </brief>
              <para>
                <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>port        = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The port number as an unsigned integer.</text>
              </returns>
              <see>
                <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
                <text>, </text>
                <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
                <text>, </text>
                <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the query</text>
                </brief>
                <para>
                  <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;query().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                  </listitem>
                  <listitem>
                    <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The query as a string.</text>
                </returns>
                <param name="token">
                  <text>A token to use for the returned string.</text>
                </param>
                <see>
                  <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                  <text>, </text>
                  <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                  <text>, </text>
                  <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                  <text>, </text>
                  <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <function name="remove_authority" id="MPuGLe4mCyOKSSQn7S4dh3SMX90=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="356" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the authority</text>
              </brief>
              <para>
                <text>This function removes the authority, which includes the userinfo, host, and a port if present.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).remove_authority().buffer() == &quot;http:/echo.cgi&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == false &amp;&amp; this-&gt;has_userinfo() == false &amp;&amp; this-&gt;has_port() == false</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="vlMSELWXcWTwdf2/dZGlv0TYnHA=">set_encoded_authority</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_fragment" exception-spec="noexcept" id="vlLHNM13ymUzmjWB6UhixNSj74k=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="421" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the fragment</text>
              </brief>
              <para>
                <text>This function removes the fragment. An empty fragment is distinct from having no fragment.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;?first=john&amp;last=doe#anchor&quot; ).remove_fragment().buffer() == &quot;?first=john&amp;last=doe&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_fragment() == false &amp;&amp; this-&gt;encoded_fragment() == &quot;&quot;</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="vlLHNM13ymUzmjWB6UhixNSj74k=">remove_fragment</reference>
                <text>, </text>
                <reference id="m72MkIEEYt8H1GVoxvQZHBwWY1A=">set_encoded_fragment</reference>
                <text>, </text>
                <reference id="+4IRFmcYy74cW/dNQ+7qmhQ1mdU=">set_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_origin" id="zpYwaJSR17hZMraeX0G0cTNJI68=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="428" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the origin component</text>
              </brief>
              <para>
                <text>This function removes the origin, which consists of the scheme and authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com/index.htm&quot; ).remove_origin().buffer() == &quot;/index.htm&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;scheme_id() == scheme::none &amp;&amp; this-&gt;has_authority() == false</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <mono>*this</mono>
              </returns>
            </doc>
          </function>
          <function name="remove_password" exception-spec="noexcept" id="MQlcavJoBHnGjmgTMowtBTZ9n5A=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="373" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the password</text>
              </brief>
              <para>
                <text>This function removes the password from the userinfo if a password exists. If there is no userinfo or no authority, the call has no effect.</text>
              </para>
              <para class="note">
                <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://user:pass@example.com&quot; ).remove_password().authority().buffer() == &quot;user@example.com&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_password() == false &amp;&amp; this-&gt;encoded_password().empty() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="mUCYlTgG9KMapdW4rMNGGyUC2eY=">set_encoded_password</reference>
                <text>, </text>
                <reference id="ScaSqMYZdNZbpN1CvNkkcKQ/mBY=">set_encoded_user</reference>
                <text>, </text>
                <reference id="sIGA8IQp3kSw3ip4pm7lmc1s9C4=">set_password</reference>
                <text>, </text>
                <reference id="C6kqHeeHWCV8aBfJIaZHzF3nxi4=">set_user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_port" exception-spec="noexcept" id="0MEk6Ddnsq5FQhANarFWyfhL4/M=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="402" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the port</text>
              </brief>
              <para>
                <text>If a port exists, it is removed. The rest of the authority is unchanged.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com:80&quot; ).remove_port().authority().buffer() == &quot;www.example.com&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_port() == false &amp;&amp; this-&gt;port_number() == 0 &amp;&amp; this-&gt;port() == &quot;&quot;</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="ay+XTyyJRSCsLBhW5JNwRtngbwo=">set_port</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_query" exception-spec="noexcept" id="IYZqU1YD/Yk8eV1APcJAB1m/E/M=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="418" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the query</text>
              </brief>
              <para>
                <text>If a query is present, it is removed. An empty query is distinct from having no query.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com?id=42&quot; ).remove_query().buffer() == &quot;http://www.example.com&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_query() == false &amp;&amp; this-&gt;params().empty()</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="4AIKM/5iinX3DS4QhIO4XJUfuzw=">set_encoded_query</reference>
                <text>, </text>
                <reference id="4zoimIYzrVVdns97BxYUtHZkP8w=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_scheme" id="RDtnbPaPAWgiqF4O91xaQbfnghQ=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="351" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the scheme</text>
              </brief>
              <para>
                <text>This function removes the scheme if it is present.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;http://www.example.com/index.htm&quot; ).remove_scheme().buffer() == &quot;//www.example.com/index.htm&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_scheme() == false &amp;&amp; this-&gt;scheme_id() == scheme::none</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="rKQfFZ6dfzeuSqZL+PgPNpIFQ5g=">set_scheme</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="remove_userinfo" exception-spec="noexcept" id="mFEIJCpzEh4h8vUKHZxjlOuZoao=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="363" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <doc>
              <brief>
                <text>Remove the userinfo</text>
              </brief>
              <para>
                <text>This function removes the userinfo if present, without removing any authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://user@example.com&quot; ).remove_userinfo().has_userinfo() == false );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_userinfo() == false &amp;&amp; this-&gt;encoded_userinfo().empty == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="c4/wDJ3igTWJNUnNsXC3LS2Fazc=">set_encoded_userinfo</reference>
                <text>, </text>
                <reference id="he1jodL9CeOuw4MBdmIdXvYfXMk=">set_userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="reserve" id="R5AajT/eZPgijKrm8AxolAdhsRQ=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="188" class="def"/>
            <param name="n">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Adjust the capacity without changing the size</text>
              </brief>
              <para>
                <text>This function adjusts the capacity of the container in characters, without affecting the current contents. Has no effect if </text>
                <mono>n &lt;= this-&gt;capacity()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <param name="n">
                <text>The capacity in characters, excluding any null terminator.</text>
              </param>
              <throws>
                <text>Allocation failure</text>
              </throws>
            </doc>
          </function>
          <function name="resolve" id="3Pi5l1khAbVAQHD3fWi5GoHEr5E=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2888"/>
            <return>
              <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;void&gt;"/>
            </return>
            <param name="ref">
              <type class="lvalue-reference">
                <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Resolve a URL reference against this base URL</text>
              </brief>
              <para>
                <text>This function attempts to resolve a URL reference </text>
                <mono>ref</mono>
                <text> against this base URL in a manner similar to that of a web browser resolving an anchor tag.</text>
              </para>
              <para>
                <text>This URL must satisfy the </text>
                <italic>URI</italic>
                <text> grammar. In other words, it must contain a scheme.</text>
              </para>
              <para>
                <text>Relative references are only usable when in the context of a base absolute URI. This process of resolving a relative </text>
                <italic>reference</italic>
                <text> within the context of a </text>
                <italic>base</italic>
                <text> URI is defined in detail in rfc3986 (see below).</text>
              </para>
              <para>
                <text>The resolution process works as if the relative reference is appended to the base URI and the result is normalized.</text>
              </para>
              <para>
                <text>Given the input base URL, this function resolves the relative reference as if performing the following steps:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>Ensure the base URI has at least a scheme</text>
                </listitem>
                <listitem>
                  <text>Normalizing the reference path</text>
                </listitem>
                <listitem>
                  <text>Merge base and reference paths</text>
                </listitem>
                <listitem>
                  <text>Normalize the merged path</text>
                </listitem>
              </unorderedlist>
              <para>
                <text>This function places the result of the resolution into this URL in place.</text>
              </para>
              <para>
                <text>If an error occurs, the contents of this URL are unspecified and a </text>
                <mono>boost::system::result</mono>
                <text> with an </text>
                <mono>system::error_code</mono>
                <text> is returned.</text>
              </para>
              <para class="note">
                <text>Abnormal hrefs where the number of &quot;..&quot; segments exceeds the number of segments in the base path are handled by including the unmatched &quot;..&quot; segments in the result, as described in </text>
                <link href="https://www.rfc-editor.org/errata/eid4547">Errata 4547</link>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url base1( &quot;/one/two/three&quot; );
base1.resolve(&quot;four&quot;);
assert( base1.buffer() == &quot;/one/two/four&quot; );

url base2( &quot;http://example.com/&quot; )
base2.resolve(&quot;/one&quot;);
assert( base2.buffer() == &quot;http://example.com/one&quot; );

url base3( &quot;http://example.com/one&quot; );
base3.resolve(&quot;/two&quot;);
assert( base3.buffer() == &quot;http://example.com/two&quot; );

url base4( &quot;http://a/b/c/d;p?q&quot; );
base4.resolve(&quot;g#s&quot;);
assert( base4.buffer() == &quot;http://a/b/c/g#s&quot; );</text>
              </code>
              <head>BNF</head>
              <code>
                <text>absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Basic guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <returns>
                <text>An empty </text>
                <mono>boost::system::result</mono>
                <text> upon success, otherwise an error code if </text>
                <mono>!base.has_scheme()</mono>
                <text>.</text>
              </returns>
              <param name="ref">
                <text>The URL reference to resolve.</text>
              </param>
              <see>
                <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
                <text>, </text>
                <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the scheme</text>
              </brief>
              <para>
                <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The scheme as a string.</text>
              </returns>
              <see>
                <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
                <text>, </text>
                <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
            <attr id="is-const"/>
            <return>
              <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
            </return>
            <doc>
              <brief>
                <text>Return the scheme</text>
              </brief>
              <para>
                <text>This function returns a value which depends on the scheme in the url:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the scheme is a well-known</text>
                  <text>        scheme, corresponding value from</text>
                  <text>        the enumeration </text>
                  <reference>urls::scheme</reference>
                  <text>        is returned.</text>
                </listitem>
                <listitem>
                  <text>If a scheme is present but is not</text>
                  <text>        a well-known scheme, the value</text>
                  <text>        returned is </text>
                  <reference>urls::scheme::unknown</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>Otherwise, if the scheme is absent</text>
                  <text>        the value returned is</text>
                  <text>        </text>
                  <reference>urls::scheme::none</reference>
                  <text>.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The scheme as an enumeration value.</text>
              </returns>
              <see>
                <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
                <text>, </text>
                <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="segments" exception-spec="noexcept" id="7IUB1R6CP5b6VCTpQBgLFv27mfU=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1952"/>
            <return>
              <type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="urls::segments_ref"/>
            </return>
            <doc>
              <brief>
                <text>Return the path as a container of segments</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments sv = u.segments();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <see>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>, </text>
                <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
                <text>, </text>
                <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
                <text>, </text>
                <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="segments" exception-spec="noexcept" id="QP1V0/Bd4lTeXI0vaNEiUqgvkPQ=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1956" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the path as a container of segments</text>
              </brief>
              <para>
                <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>A bidirectional view of segments.</text>
              </returns>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>. </text>
                <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
                <text>, </text>
                <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_authority" id="vlMSELWXcWTwdf2/dZGlv0TYnHA=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="354" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the authority</text>
              </brief>
              <para>
                <text>This function sets the authority to the specified string. The string may contain percent-escapes.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url().set_encoded_authority( &quot;My%20Computer&quot; ).has_authority() );</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The authority string to set.</text>
              </param>
              <see>
                <reference id="MPuGLe4mCyOKSSQn7S4dh3SMX90=">remove_authority</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_fragment" id="m72MkIEEYt8H1GVoxvQZHBwWY1A=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="425" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the fragment.</text>
              </brief>
              <para>
                <text>This function sets the fragment to the specified string, which may contain percent-escapes and which may be empty. An empty fragment is distinct from having no fragment. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john%2Ddoe&quot; ).fragment() == &quot;john-doe&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == decode_view( s )</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="vlLHNM13ymUzmjWB6UhixNSj74k=">remove_fragment</reference>
                <text>, </text>
                <reference id="+4IRFmcYy74cW/dNQ+7qmhQ1mdU=">set_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_host" id="WTVVGr7kT7qnFaI6e/getY73eAI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="378" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host</text>
              </brief>
              <para>
                <text>Depending on the contents of the passed string, this function sets the host:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the string is a valid IPv4 address,</text>
                  <text>        then the host is set to the address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPv6 address</text>
                  <text>        enclosed in square brackets, then the</text>
                  <text>        host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPvFuture</text>
                  <text>        address enclosed in square brackets, then</text>
                  <text>        the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>Otherwise, the host name is set to</text>
                  <text>        the string. This string can contain percent</text>
                  <text>        escapes, or can be empty.</text>
                  <text>        Escapes in the string are preserved,</text>
                  <text>        and reserved characters in the string</text>
                  <text>        are percent-escaped in the result.</text>
                  <text>        The host type is </text>
                  <reference>host_type::name</reference>
                  <text>.</text>
                </listitem>
              </unorderedlist>
              <para>
                <text>In all cases, when this function returns, the URL contains an authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_host_address" id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="382" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host to an address</text>
              </brief>
              <para>
                <text>Depending on the contents of the passed string, this function sets the host:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the string is a valid IPv4 address,</text>
                  <text>        then the host is set to the address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPv6 address,</text>
                  <text>        then the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPvFuture,</text>
                  <text>        then the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>Otherwise, the host name is set to</text>
                  <text>        the string. This string can contain percent</text>
                  <text>        escapes, or can be empty.</text>
                  <text>        Escapes in the string are preserved,</text>
                  <text>        and reserved characters in the string</text>
                  <text>        are percent-escaped in the result.</text>
                  <text>        The host type is </text>
                  <reference>host_type::name</reference>
                  <text>.</text>
                </listitem>
              </unorderedlist>
              <para>
                <text>In all cases, when this function returns, the URL contains an authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_host_name" id="vyW7/09OitF6fXON1o2ftFzwX0Y=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="396" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host to a name</text>
              </brief>
              <para>
                <text>The host is set to the specified string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_encoded_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_params" exception-spec="noexcept" id="S9fyQqerhxu7yBt8GhsEJ9RKJl8=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2420"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
              </type>
            </return>
            <param name="ps">
              <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
            </param>
            <doc>
              <brief>
                <text>Set the query params</text>
              </brief>
              <para>
                <text>This sets the query params to the elements in the list, which may contain percent-escapes and can be empty.</text>
              </para>
              <para>
                <text>An empty list of params is distinct from having no query.</text>
              </para>
              <para>
                <text>Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_encoded_params( {&quot;id&quot;, &quot;42&quot;} ).encoded_query() == &quot;id=42&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_query() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="ps">
                <text>The params to set.</text>
              </param>
              <throws>
                <text>some element in </text>
                <mono>ps</mono>
                <text> contains an invalid percent-encoding.</text>
              </throws>
              <see>
                <reference id="6eTAKxxUVgfC1QD7w2yAukEvLs4=">set_params</reference>
                <text>, </text>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
                <text>, </text>
                <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
                <text>, </text>
                <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_password" id="mUCYlTgG9KMapdW4rMNGGyUC2eY=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="371" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the password.</text>
              </brief>
              <para>
                <text>This function sets the password in the userinfo to the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <para class="note">
                <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;http://user@example.com&quot;).set_encoded_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_password() == true</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set. This string may contain any characters, including nulls.</text>
              </param>
              <see>
                <reference id="MQlcavJoBHnGjmgTMowtBTZ9n5A=">remove_password</reference>
                <text>, </text>
                <reference id="mUCYlTgG9KMapdW4rMNGGyUC2eY=">set_encoded_password</reference>
                <text>, </text>
                <reference id="ScaSqMYZdNZbpN1CvNkkcKQ/mBY=">set_encoded_user</reference>
                <text>, </text>
                <reference id="C6kqHeeHWCV8aBfJIaZHzF3nxi4=">set_user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_path" id="ZtNFxErPLOzV+1Hgm4Z5rSqtm00=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="409" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the path.</text>
              </brief>
              <para>
                <text>This function sets the path to the string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <para class="note">
                <text>The library may adjust the final result to ensure that no other parts of the url is semantically affected.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url u( &quot;http://www.example.com&quot; );

u.set_encoded_path( &quot;path/to/file.txt&quot; );

assert( u.encoded_path() == &quot;/path/to/file.txt&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>, </text>
                <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
                <text>, </text>
                <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
                <text>, </text>
                <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_query" id="4AIKM/5iinX3DS4QhIO4XJUfuzw=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="414" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the query</text>
              </brief>
              <para>
                <text>This sets the query to the string, which may contain percent-escapes and can be empty. An empty query is distinct from having no query. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_encoded_query( &quot;id=42&quot; ).encoded_query() == &quot;id=42&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == decode_view( s );</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="IYZqU1YD/Yk8eV1APcJAB1m/E/M=">remove_query</reference>
                <text>, </text>
                <reference id="4zoimIYzrVVdns97BxYUtHZkP8w=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_user" id="ScaSqMYZdNZbpN1CvNkkcKQ/mBY=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="367" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the user</text>
              </brief>
              <para>
                <text>This function sets the user part of the userinfo the the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url().set_encoded_user(&quot;john%20doe&quot;).userinfo() == &quot;john doe&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="MQlcavJoBHnGjmgTMowtBTZ9n5A=">remove_password</reference>
                <text>, </text>
                <reference id="mUCYlTgG9KMapdW4rMNGGyUC2eY=">set_encoded_password</reference>
                <text>, </text>
                <reference id="sIGA8IQp3kSw3ip4pm7lmc1s9C4=">set_password</reference>
                <text>, </text>
                <reference id="C6kqHeeHWCV8aBfJIaZHzF3nxi4=">set_user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_userinfo" id="c4/wDJ3igTWJNUnNsXC3LS2Fazc=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="361" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the userinfo.</text>
              </brief>
              <para>
                <text>The userinfo is set to the given string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If an unescaped colon exists, the</text>
                  <text>        characters up to the colon become</text>
                  <text>        the user and the rest of the characters</text>
                  <text>        after the colon become the password.</text>
                  <text>        In this case </text>
                  <reference>has_password</reference>
                  <text> returns        true. Otherwise,</text>
                </listitem>
                <listitem>
                  <text>If there is no colon, the user is</text>
                  <text>        set to the string. The function</text>
                  <text>        </text>
                  <reference>has_password</reference>
                  <text> returns false.</text>
                </listitem>
              </unorderedlist>
              <para class="note">
                <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_encoded_userinfo( &quot;john%20doe&quot; ).user() == &quot;john doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
                <text>, </text>
                <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_encoded_zone_id" id="/HsDRNr5aHRIzBwkJqZnZrdNZ/k=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1412"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
              </type>
            </return>
            <param name="s">
              <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
              </brief>
              <para>
                <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The zone ID to set.</text>
              </param>
              <throws>
                <mono>s</mono>
                <text> contains an invalid percent-encoding.</text>
              </throws>
            </doc>
          </function>
          <function name="set_encoded_zone_id" id="uMCWMPTaG0c6Qr//HaWgWGV0e0E=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="390" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
              </brief>
              <para>
                <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The zone ID to set.</text>
              </param>
            </doc>
          </function>
          <function name="set_fragment" id="+4IRFmcYy74cW/dNQ+7qmhQ1mdU=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="423" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the fragment.</text>
              </brief>
              <para>
                <text>This function sets the fragment to the specified string, which may be empty. An empty fragment is distinct from having no fragment. Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john doe&quot; ).encoded_fragment() == &quot;john%20doe&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == s</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="vlLHNM13ymUzmjWB6UhixNSj74k=">remove_fragment</reference>
                <text>, </text>
                <reference id="m72MkIEEYt8H1GVoxvQZHBwWY1A=">set_encoded_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host" id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="376" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host</text>
              </brief>
              <para>
                <text>Depending on the contents of the passed string, this function sets the host:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the string is a valid IPv4 address,</text>
                  <text>        then the host is set to the address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPv6 address</text>
                  <text>        enclosed in square brackets, then the</text>
                  <text>        host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPvFuture</text>
                  <text>        address enclosed in square brackets, then</text>
                  <text>        the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>Otherwise, the host name is set to</text>
                  <text>        the string, which may be empty.</text>
                  <text>        Reserved characters in the string are</text>
                  <text>        percent-escaped in the result.</text>
                  <text>        The host type is </text>
                  <reference>host_type::name</reference>
                  <text>.</text>
                </listitem>
              </unorderedlist>
              <para>
                <text>In all cases, when this function returns, the URL contains an authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host_address" id="TGaSnQ4PS0WINemStJIm4VLR0rI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="380" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host to an address</text>
              </brief>
              <para>
                <text>Depending on the contents of the passed string, this function sets the host:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the string is a valid IPv4 address,</text>
                  <text>        then the host is set to the address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPv6 address,</text>
                  <text>        then the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>If the string is a valid IPvFuture,</text>
                  <text>        then the host is set to that address.</text>
                  <text>        The host type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>.</text>
                </listitem>
                <listitem>
                  <text>Otherwise, the host name is set to</text>
                  <text>        the string, which may be empty.</text>
                  <text>        Reserved characters in the string are</text>
                  <text>        percent-escaped in the result.</text>
                  <text>        The host type is </text>
                  <reference>host_type::name</reference>
                  <text>.</text>
                </listitem>
              </unorderedlist>
              <para>
                <text>In all cases, when this function returns, the URL contains an authority.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_host_address( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host_ipv4" id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="384" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="addr">
              <type class="lvalue-reference">
                <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Set the host to an address</text>
              </brief>
              <para>
                <text>The host is set to the specified IPv4 address. The host type is </text>
                <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;http://www.example.com&quot;).set_host_ipv4( ipv4_address( &quot;127.0.0.1&quot; ) ).buffer() == &quot;http://127.0.0.1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv4_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv4</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="addr">
                <text>The address to set.</text>
              </param>
              <see>
                <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
                <text>, </text>
                <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
                <text>, </text>
                <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
                <text>, </text>
                <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host_ipv6" id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="386" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="addr">
              <type class="lvalue-reference">
                <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Set the host to an address</text>
              </brief>
              <para>
                <text>The host is set to the specified IPv6 address. The host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url().set_host_ipv6( ipv6_address( &quot;1::6:c0a8:1&quot; ) ).authority().buffer() == &quot;[1::6:c0a8:1]&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv6</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
                </listitem>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="addr">
                <text>The address to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host_ipvfuture" id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="392" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host to an address</text>
              </brief>
              <para>
                <text>The host is set to the specified IPvFuture string. The host type is </text>
                <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url().set_host_ipvfuture( &quot;v42.bis&quot; ).buffer() == &quot;//[v42.bis]&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipvfuture) == s &amp;&amp; this-&gt;host_type() == host_type::ipvfuture</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="UaE/Nbim4fGJNSgi8xJbANtFuso=">set_host_name</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_host_name" id="UaE/Nbim4fGJNSgi8xJbANtFuso=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="394" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the host to a name</text>
              </brief>
              <para>
                <text>The host is set to the specified string, which may be empty. Reserved characters in the string are percent-escaped in the result. The host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="WTVVGr7kT7qnFaI6e/getY73eAI=">set_encoded_host</reference>
                <text>, </text>
                <reference id="jlXXuOvH7OFDJ92kr+Ha02sixZY=">set_encoded_host_address</reference>
                <text>, </text>
                <reference id="vyW7/09OitF6fXON1o2ftFzwX0Y=">set_encoded_host_name</reference>
                <text>, </text>
                <reference id="c6/kyTU/r4vjSPQM1DnwtnTv3/o=">set_host</reference>
                <text>, </text>
                <reference id="TGaSnQ4PS0WINemStJIm4VLR0rI=">set_host_address</reference>
                <text>, </text>
                <reference id="J2yY5s29/Vm0kL+xtvGZMflIdkI=">set_host_ipv4</reference>
                <text>, </text>
                <reference id="Guwgs2WWqZMqTOkuQucJUI0fpO8=">set_host_ipv6</reference>
                <text>, </text>
                <reference id="6YBmlxPZA2kZSlYjMb1sLD6KrGQ=">set_host_ipvfuture</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_params" id="l3egvbg5aBpsjCXp8RnOSZ8DzX4=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="416" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="ps">
              <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
            </param>
            <param name="opts" default="{}">
              <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
            </param>
            <doc>
              <brief>
                <text>Set the query params</text>
              </brief>
              <para>
                <text>This sets the query params to the list of param_view, which can be empty.</text>
              </para>
              <para>
                <text>An empty list of params is distinct from having no params.</text>
              </para>
              <para>
                <text>Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_params( {&quot;id&quot;, &quot;42&quot;} ).query() == &quot;id=42&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_query() == true</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Linear.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4
            &gt;3.4.  Query (rfc3986)&lt;/a&gt;
        @li &lt;a href=">://en.wikipedia.org/wiki/Query_string&quot;            &gt;Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="ps">
                <text>The params to set.</text>
              </param>
              <param name="opts">
                <text>The options for encoding.</text>
              </param>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="IYZqU1YD/Yk8eV1APcJAB1m/E/M=">remove_query</reference>
                <text>, </text>
                <reference id="4AIKM/5iinX3DS4QhIO4XJUfuzw=">set_encoded_query</reference>
                <text>, </text>
                <reference id="4zoimIYzrVVdns97BxYUtHZkP8w=">set_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_password" id="sIGA8IQp3kSw3ip4pm7lmc1s9C4=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="369" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the password.</text>
              </brief>
              <para>
                <text>This function sets the password in the userinfo to the string. Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <para class="note">
                <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url(&quot;http://user@example.com&quot;).set_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_password() == true &amp;&amp; this-&gt;password() == s</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set. This string may contain any characters, including nulls.</text>
              </param>
              <see>
                <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
                <text>, </text>
                <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
                <text>, </text>
                <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
                <text>, </text>
                <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_path" id="VqDEXtjQm5PewYuAWxjhVpm2+MY=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="407" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the path.</text>
              </brief>
              <para>
                <text>This function sets the path to the string, which may be empty. Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <para class="note">
                <text>The library may adjust the final result to ensure that no other parts of the URL are semantically affected.</text>
              </para>
              <para class="note">
                <text>This function does not encode &apos;/&apos; chars, which are unreserved for paths but reserved for path segments. If a path segment should include encoded &apos;/&apos;s to differentiate it from path separators, the functions </text>
                <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
                <text> or </text>
                <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
                <text> should be used instead.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url u( &quot;http://www.example.com&quot; );

u.set_path( &quot;path/to/file.txt&quot; );

assert( u.path() == &quot;/path/to/file.txt&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>, </text>
                <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
                <text>, </text>
                <reference id="ZtNFxErPLOzV+1Hgm4Z5rSqtm00=">set_encoded_path</reference>
                <text>, </text>
                <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_path_absolute" id="BHDHQef0k/8vd3QskLyTrsv7+DE=">
            <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1761"/>
            <return>
              <type name="bool"/>
            </return>
            <param name="absolute">
              <type name="bool"/>
            </param>
            <doc>
              <brief>
                <text>Set if the path is absolute</text>
              </brief>
              <para>
                <text>This function adjusts the path to make it absolute or not, depending on the parameter.</text>
              </para>
              <para class="note">
                <text>If an authority is present, the path is always absolute. In this case, the function has no effect.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url u( &quot;path/to/file.txt&quot; );
assert( u.set_path_absolute( true ) );
assert( u.buffer() == &quot;/path/to/file.txt&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;is_path_absolute() == true &amp;&amp; this-&gt;encoded_path().front() == &apos;/&apos;</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>true on success.</text>
              </returns>
              <param name="absolute">
                <text>If </text>
                <mono>true</mono>
                <text>, the path is made absolute.</text>
              </param>
              <see>
                <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
                <text>, </text>
                <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
                <text>, </text>
                <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
                <text>, </text>
                <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_port" id="ay+XTyyJRSCsLBhW5JNwRtngbwo=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="400" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the port</text>
              </brief>
              <para>
                <text>This port is set to the string, which must contain only digits or be empty. An empty port string is distinct from having no port.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_port( &quot;8080&quot; ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n &amp;&amp; this-&gt;port() == std::to_string(n)</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>port          = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The port string to set.</text>
              </param>
              <see>
                <reference id="0MEk6Ddnsq5FQhANarFWyfhL4/M=">remove_port</reference>
                <text>, </text>
                <reference id="ay+XTyyJRSCsLBhW5JNwRtngbwo=">set_port</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_port_number" id="vvvc+qpbS5HUTGzLHaY+KnnRbGQ=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="398" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="n">
              <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
            </param>
            <doc>
              <brief>
                <text>Set the port</text>
              </brief>
              <para>
                <text>The port is set to the specified integer.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_port_number( 8080 ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="n">
                <text>The port number to set.</text>
              </param>
              <see>
                <reference id="0MEk6Ddnsq5FQhANarFWyfhL4/M=">remove_port</reference>
                <text>, </text>
                <reference id="ay+XTyyJRSCsLBhW5JNwRtngbwo=">set_port</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_query" id="4zoimIYzrVVdns97BxYUtHZkP8w=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="412" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the query</text>
              </brief>
              <para>
                <text>This sets the query to the string, which can be empty. An empty query is distinct from having no query. Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_query( &quot;id=42&quot; ).query() == &quot;id=42&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == s</text>
              </code>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
                <text>, </text>
                <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
                <text>, </text>
                <reference id="IYZqU1YD/Yk8eV1APcJAB1m/E/M=">remove_query</reference>
                <text>, </text>
                <reference id="4AIKM/5iinX3DS4QhIO4XJUfuzw=">set_encoded_query</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_scheme" id="Lc5XBzZs/ayxU18Djd6Q0BHFWv4=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="347" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the scheme</text>
              </brief>
              <para>
                <text>The scheme is set to the specified string, which must contain a valid scheme without any trailing colon (&apos;:&apos;). Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://www.example.com&quot; ).set_scheme( &quot;https&quot; ).scheme_id() == scheme::https );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>scheme        = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The scheme to set.</text>
              </param>
              <see>
                <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_scheme_id" id="rtAxCFit/TGmjKYS6TFVsrBNQEI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="349" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="id">
              <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
            </param>
            <doc>
              <brief>
                <text>Set the scheme</text>
              </brief>
              <para>
                <text>This function sets the scheme to the specified known </text>
                <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">urls::scheme</reference>
                <text> id, which may not be </text>
                <reference id="LJxTyQ55ot1WYLH7f46nZvdGU78=">scheme::unknown</reference>
                <text> or else an exception is thrown. If the id is </text>
                <reference id="VupiauVBXlZQ8Uix+vk8kSl+fM8=">scheme::none</reference>
                <text>, this function behaves as if </text>
                <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
                <text> were called.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).set_scheme_id( scheme::wss ).buffer() == &quot;wss://example.com/echo.cgi&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="id">
                <text>The scheme to set.</text>
              </param>
            </doc>
          </function>
          <function name="set_user" id="C6kqHeeHWCV8aBfJIaZHzF3nxi4=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="365" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the user</text>
              </brief>
              <para>
                <text>This function sets the user part of the userinfo to the string. Any special or reserved characters in the string are automatically percent-encoded.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url().set_user(&quot;john doe&quot;).encoded_userinfo() == &quot;john%20doe&quot; );</text>
              </code>
              <head>Postconditions</head>
              <code>
                <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="MQlcavJoBHnGjmgTMowtBTZ9n5A=">remove_password</reference>
                <text>, </text>
                <reference id="mUCYlTgG9KMapdW4rMNGGyUC2eY=">set_encoded_password</reference>
                <text>, </text>
                <reference id="ScaSqMYZdNZbpN1CvNkkcKQ/mBY=">set_encoded_user</reference>
                <text>, </text>
                <reference id="sIGA8IQp3kSw3ip4pm7lmc1s9C4=">set_password</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_userinfo" id="he1jodL9CeOuw4MBdmIdXvYfXMk=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="359" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the userinfo</text>
              </brief>
              <para>
                <text>The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If an unescaped colon exists, the</text>
                  <text>        characters up to the colon become</text>
                  <text>        the user and the rest of the characters</text>
                  <text>        after the colon become the password.</text>
                  <text>        In this case </text>
                  <reference>has_password</reference>
                  <text> returns        true. Otherwise,</text>
                </listitem>
                <listitem>
                  <text>If there is no colon, the user is</text>
                  <text>        set to the string. The function</text>
                  <text>        </text>
                  <reference>has_password</reference>
                  <text> returns false.</text>
                </listitem>
              </unorderedlist>
              <para class="note">
                <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url( &quot;http://example.com&quot; ).set_userinfo( &quot;user:pass&quot; ).encoded_user() == &quot;user&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size() + s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The string to set.</text>
              </param>
              <see>
                <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
                <text>, </text>
                <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
          <function name="set_zone_id" id="bEmCJdx+TpNi361IL4hPfZSdUWI=">
            <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="388" class="def"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="4HBDcnMjZthTXFnhpS7z+UhDNjA=" name="static_url"/>
              </type>
            </return>
            <param name="s">
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </param>
            <doc>
              <brief>
                <text>Set the zone ID for an IPv6 address.</text>
              </brief>
              <para>
                <text>This function sets the zone ID for the host if the host is an IPv6 address. Reserved characters in the string are percent-escaped in the result.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Strong guarantee. Calls to allocate may throw.</text>
              </para>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
                </listitem>
              </unorderedlist>
              <returns>
                <mono>*this</mono>
              </returns>
              <param name="s">
                <text>The zone ID to set.</text>
              </param>
            </doc>
          </function>
          <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </return>
            <doc>
              <brief>
                <text>Return the number of characters in the url</text>
              </brief>
              <para>
                <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>The number of characters in the url.</text>
              </returns>
            </doc>
          </function>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the user</text>
                </brief>
                <para>
                  <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;user().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The user as a string.</text>
                </returns>
                <param name="token">
                  <text>The string token to use.</text>
                </param>
                <see>
                  <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                  <text>, </text>
                  <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                  <text>, </text>
                  <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                  <text>, </text>
                  <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                  <text>, </text>
                  <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                  <text>, </text>
                  <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                  <text>, </text>
                  <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the userinfo</text>
                </brief>
                <para>
                  <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
                </para>
                <para class="note">
                  <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                  <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                  <text> for more information.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;userinfo().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>When called with no arguments, a value of type </text>
                  <mono>std::string</mono>
                  <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
                </returns>
                <returns>
                  <text>The userinfo as a string.</text>
                </returns>
                <param name="token">
                  <text>The string token to use.</text>
                </param>
                <see>
                  <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                  <text>, </text>
                  <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                  <text>, </text>
                  <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                  <text>, </text>
                  <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                  <text>, </text>
                  <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                  <text>, </text>
                  <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                  <text>, </text>
                  <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                  <text>.</text>
                </see>
              </doc>
            </function>
          </template>
          <template>
            <tparam name="StringToken" class="type" default="string_token::return_string"/>
            <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
              <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
              <attr id="is-const"/>
              <return>
                <type name="StringToken::result_type"/>
              </return>
              <param name="token" default="{}">
                <type class="rvalue-reference">
                  <pointee-type name="StringToken"/>
                </type>
              </param>
              <doc>
                <brief>
                  <text>Return the IPv6 Zone ID</text>
                </brief>
                <para>
                  <text>If the host type is </text>
                  <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                  <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
                </para>
                <head>Example</head>
                <code>
                  <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
                </code>
                <head>Complexity</head>
                <para>
                  <text>Linear in </text>
                  <mono>this-&gt;encoded_zone_id().size()</mono>
                  <text>.</text>
                </para>
                <head>Exception Safety</head>
                <para>
                  <text>Calls to allocate may throw.</text>
                </para>
                <head>BNF</head>
                <code>
                  <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
                </code>
                <head>Specification</head>
                <unorderedlist>
                  <listitem>
                    <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                  </listitem>
                </unorderedlist>
                <returns>
                  <text>The Zone ID as a string.</text>
                </returns>
                <param name="token">
                  <text>A string token customization.</text>
                </param>
              </doc>
            </function>
          </template>
          <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
            <attr id="is-const"/>
            <return>
              <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
            </return>
            <doc>
              <brief>
                <text>Return the URL as a core::string_view</text>
              </brief>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A string view of the URL.</text>
              </returns>
            </doc>
          </function>
          <function name="max_size" exception-spec="noexcept" id="mg8FRYZ94og9lKYjTEYdjucqHw4=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="156" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="storage-class" name="static" value="2"/>
            <return>
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </return>
            <doc>
              <brief>
                <text>Return the maximum number of characters possible</text>
              </brief>
              <para>
                <text>This represents the largest number of characters that are theoretically possible to represent in a url, not including any null terminator. In practice the actual possible size may be lower than this number.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Constant.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>The maximum number of characters.</text>
              </returns>
            </doc>
          </function>
          <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
            <attr id="is-const"/>
            <return>
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </return>
            <param name="salt" default="0">
              <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
            </param>
            <doc>
              <brief>
                <text>Calculate a hash of the url</text>
              </brief>
              <para>
                <text>This function calculates a hash of the url as if it were always normalized.</text>
              </para>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Throws nothing.</text>
              </para>
              <returns>
                <text>A hash value suitable for use in hash-based containers.</text>
              </returns>
              <param name="salt">
                <text>An initial value to add to the hash</text>
              </param>
            </doc>
          </function>
        </class>
      </template>
      <class name="static_url_base" id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">
        <file short-path="boost/url/static_url.hpp" source-path="include/boost/url/static_url.hpp" line="52" class="def"/>
        <base>
          <type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
        </base>
        <friend id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">
          <befriended id="4HBDcnMjZthTXFnhpS7z+UhDNjA="/>
        </friend>
        <doc>
          <brief>
            <text>Common implementation for all static URLs</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common functionality for static URLs. Users should not use this class directly. Instead, construct an instance of one of the containers or call a parsing function.</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>url</reference>
            </listitem>
            <listitem>
              <reference>url_view</reference>
            </listitem>
            <listitem>
              <reference>static_url</reference>
            </listitem>
          </unorderedlist>
          <head>Parsing Functions</head>
          <unorderedlist>
            <listitem>
              <reference>parse_absolute_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_origin_form</reference>
            </listitem>
            <listitem>
              <reference>parse_relative_ref</reference>
            </listitem>
            <listitem>
              <reference>parse_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_uri_reference</reference>
            </listitem>
          </unorderedlist>
          <related>
            <reference id="K7ofEKM2bNb4ZS9OFo0DX+7Ep9I=">format_to</reference>
            <reference id="ueXaMbO5jFzZWelOn6upDJcN55Y=">format_to</reference>
            <reference id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">operator!=</reference>
            <reference id="Si07vh35lnvnJy8tpXUIpiFEjGM=">operator&lt;</reference>
            <reference id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">operator&lt;=</reference>
            <reference id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">operator==</reference>
            <reference id="ngGy21anUjaZiQQJidHT5lvOC2w=">operator&gt;</reference>
            <reference id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">operator&gt;=</reference>
            <reference id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">resolve</reference>
          </related>
        </doc>
        <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
          <attr id="is-const"/>
          <return>
            <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority</text>
            </brief>
            <para>
              <text>This function returns the authority as an </text>
              <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>An authority_view representing the authority.</text>
            </returns>
            <see>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the url string</text>
            </brief>
            <para>
              <text>This function returns the entire url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The url as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="c_str" exception-spec="noexcept" id="OUdGewqojyZZ2vohOsR/ce3sgdM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="128" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the url as a null-terminated string</text>
            </brief>
            <para>
              <text>This function returns a pointer to a null terminated string representing the url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( std::strlen( url( &quot;http://www.example.com&quot; ).c_str() ) == 22 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to a null-terminated string containing the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="capacity" exception-spec="noexcept" id="FPqXKVymUm0eRCsXV1yuMFlv4ug=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="147" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters that can be stored without reallocating</text>
            </brief>
            <para>
              <text>This does not include the null terminator, which is always present.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="PMYRGpyOUt7hbDyd33GRHTcxEj8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="166" class="def"/>
          <doc>
            <brief>
              <text>Clear the contents while preserving the capacity</text>
            </brief>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>No-throw guarantee.</text>
            </para>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another url</text>
            </brief>
            <para>
              <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>min( u0.size(), u1.size() )</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>-1 if </text>
              <mono>*this &lt; other</mono>
              <text>, 0 if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The url to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the url&apos;s character buffer</text>
            </brief>
            <para>
              <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the url is empty</text>
            </brief>
            <para>
              <text>The empty string matches the </text>
              <italic>relative-ref</italic>
              <text> grammar.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url is empty.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority.</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The authority as a string.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the fragment</text>
            </brief>
            <para>
              <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The fragment portion of the url.</text>
            </returns>
            <see>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>, </text>
              <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port portion of the url.</text>
            </returns>
            <see>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the origin</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The origin portion of the url.</text>
            </returns>
            <see>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="aMmTh8VyfWGYracYniHLsug6OhI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2301"/>
          <return>
            <type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="JE/K4m/Ht4rR+eX6GaLeumryMhM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2249" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path</text>
            </brief>
            <para>
              <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The path as a string.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query</text>
            </brief>
            <para>
              <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query as a string.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the resource</text>
            </brief>
            <para>
              <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The resource portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="6FgVEvfQ0X7vaJ9TLmk6h3MBVPU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2015"/>
          <return>
            <type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments_encoded_ref sv = u.encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="5da2HmyZRkzKje3uZJyQ0Zr/GBI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of encoded segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the target</text>
            </brief>
            <para>
              <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The target portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the IPv6 Zone ID</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The Zone ID as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
              </para>
              <para>
                <text>This function accepts an optional </text>
                <italic>StringToken</italic>
                <text> parameter which controls the return type and behavior of the function:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>When called with no arguments,</text>
                  <text>        the return type of the function is</text>
                  <text>        `std::string`. Otherwise</text>
                </listitem>
                <listitem>
                  <text>When called with a string token,</text>
                  <text>        the behavior and return type of the</text>
                  <text>        function depends on the type of string</text>
                  <text>        token being passed.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <param name="token">
                <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                <mono>std::string</mono>
                <text>.</text>
              </param>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if an authority is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains an authority.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a fragment is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a fragment.</text>
            </returns>
            <see>
              <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
              <text>, </text>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo contains a password.</text>
            </returns>
            <see>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a query is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a query is present.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true a scheme is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a scheme.</text>
            </returns>
            <see>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo is present.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv4 address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv6 address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPvFuture address as a string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
              <listitem>
                <reference>host_type::none</reference>
              </listitem>
            </unorderedlist>
            <para>
              <text>When </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text> is false, the host type is </text>
              <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The type of host present.</text>
            </returns>
          </doc>
        </function>
        <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the path is absolute</text>
            </brief>
            <para>
              <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="normalize" id="ldUmQToJNGQ58j33Mti85clcGbM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2670"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL components</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to all components of the URL.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_authority" id="j2lB1y9ywFNpGt8xXYkZZuJbs30=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2715"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL authority</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL authority.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_fragment" id="R2y0tPa5JiRRSTNXgUjKdMoCOcA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2788"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL fragment</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL fragment.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_path" id="pjVn3eVVaWNAixzkPBECE+lKByQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2740"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL path</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL path.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded. Redundant path-segments are removed.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_query" id="4CZ8ebKgivCQbRJoYD78PmOko2U=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2764"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL query</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL query.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_scheme" id="iyO2AawtEbzXMJkvSocn7BpBBrI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2691"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL scheme</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL scheme.</text>
            </para>
            <para>
              <text>The scheme is normalized to lowercase.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="MYfnAHxNPsNhl4M31kQzwrirB9M=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2183"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="s9dRuYwynzv+XH3wi5E1LonuuYk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2187" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="yOAcBK51dE1EJqsBF6ZGTSEnocA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2245"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>encoding_opts opt;
opt.space_as_plus = true;
params_ref pv = url( &quot;/sql?id=42&amp;name=jane+doe&amp;page+size=20&quot; ).params(opt);</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A range of references to the parameters.</text>
            </returns>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, the </text>
              <mono>space_as_plus</mono>
              <text> is used.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;path().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <param name="token">
                <text>A string token to use for the result.</text>
              </param>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
          <attr id="is-const"/>
          <return>
            <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Return a shared, persistent copy of the url</text>
            </brief>
            <para>
              <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
            </para>
            <head>Example</head>
            <code>
              <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A shared pointer to a read-only url_view.</text>
            </returns>
          </doc>
        </function>
        <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number as an unsigned integer.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <param name="token">
                <text>A token to use for the returned string.</text>
              </param>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="remove_authority" id="cjTKMEM0IWRzDexmJAiWOj6P+ZI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="409"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the authority</text>
            </brief>
            <para>
              <text>This function removes the authority, which includes the userinfo, host, and a port if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).remove_authority().buffer() == &quot;http:/echo.cgi&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == false &amp;&amp; this-&gt;has_userinfo() == false &amp;&amp; this-&gt;has_port() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="VTO/x6AChJRFyjVKxhaqmIAvYFI=">set_encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_fragment" exception-spec="noexcept" id="aGhIz5PP9XtdztICzhAvM4n92Sg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2511"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the fragment</text>
            </brief>
            <para>
              <text>This function removes the fragment. An empty fragment is distinct from having no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;?first=john&amp;last=doe#anchor&quot; ).remove_fragment().buffer() == &quot;?first=john&amp;last=doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == false &amp;&amp; this-&gt;encoded_fragment() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_origin" id="OqDHBYUjGSW4mGYuSUu09xFSlEc=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2645"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the origin component</text>
            </brief>
            <para>
              <text>This function removes the origin, which consists of the scheme and authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot; ).remove_origin().buffer() == &quot;/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;scheme_id() == scheme::none &amp;&amp; this-&gt;has_authority() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="remove_password" exception-spec="noexcept" id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="858"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the password</text>
            </brief>
            <para>
              <text>This function removes the password from the userinfo if a password exists. If there is no userinfo or no authority, the call has no effect.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user:pass@example.com&quot; ).remove_password().authority().buffer() == &quot;user@example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == false &amp;&amp; this-&gt;encoded_password().empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_port" exception-spec="noexcept" id="ADa0xIsiS8APEAdL3+s0LoNowA8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1697"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the port</text>
            </brief>
            <para>
              <text>If a port exists, it is removed. The rest of the authority is unchanged.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com:80&quot; ).remove_port().authority().buffer() == &quot;www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == false &amp;&amp; this-&gt;port_number() == 0 &amp;&amp; this-&gt;port() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_query" exception-spec="noexcept" id="ZZWEzCK7DguUxc3TvUfizoGKplE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2464"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the query</text>
            </brief>
            <para>
              <text>If a query is present, it is removed. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com?id=42&quot; ).remove_query().buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == false &amp;&amp; this-&gt;params().empty()</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_scheme" id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="319"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the scheme</text>
            </brief>
            <para>
              <text>This function removes the scheme if it is present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com/index.htm&quot; ).remove_scheme().buffer() == &quot;//www.example.com/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_scheme() == false &amp;&amp; this-&gt;scheme_id() == scheme::none</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="rKQfFZ6dfzeuSqZL+PgPNpIFQ5g=">set_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_userinfo" exception-spec="noexcept" id="PjTTglJlJuEwKHuRXGByi7wW8W8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="586"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the userinfo</text>
            </brief>
            <para>
              <text>This function removes the userinfo if present, without removing any authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user@example.com&quot; ).remove_userinfo().has_userinfo() == false );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_userinfo() == false &amp;&amp; this-&gt;encoded_userinfo().empty == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
              <text>, </text>
              <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="reserve" id="R5AajT/eZPgijKrm8AxolAdhsRQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="188" class="def"/>
          <param name="n">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Adjust the capacity without changing the size</text>
            </brief>
            <para>
              <text>This function adjusts the capacity of the container in characters, without affecting the current contents. Has no effect if </text>
              <mono>n &lt;= this-&gt;capacity()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="n">
              <text>The capacity in characters, excluding any null terminator.</text>
            </param>
            <throws>
              <text>Allocation failure</text>
            </throws>
          </doc>
        </function>
        <function name="resolve" id="3Pi5l1khAbVAQHD3fWi5GoHEr5E=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2888"/>
          <return>
            <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;void&gt;"/>
          </return>
          <param name="ref">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Resolve a URL reference against this base URL</text>
            </brief>
            <para>
              <text>This function attempts to resolve a URL reference </text>
              <mono>ref</mono>
              <text> against this base URL in a manner similar to that of a web browser resolving an anchor tag.</text>
            </para>
            <para>
              <text>This URL must satisfy the </text>
              <italic>URI</italic>
              <text> grammar. In other words, it must contain a scheme.</text>
            </para>
            <para>
              <text>Relative references are only usable when in the context of a base absolute URI. This process of resolving a relative </text>
              <italic>reference</italic>
              <text> within the context of a </text>
              <italic>base</italic>
              <text> URI is defined in detail in rfc3986 (see below).</text>
            </para>
            <para>
              <text>The resolution process works as if the relative reference is appended to the base URI and the result is normalized.</text>
            </para>
            <para>
              <text>Given the input base URL, this function resolves the relative reference as if performing the following steps:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>Ensure the base URI has at least a scheme</text>
              </listitem>
              <listitem>
                <text>Normalizing the reference path</text>
              </listitem>
              <listitem>
                <text>Merge base and reference paths</text>
              </listitem>
              <listitem>
                <text>Normalize the merged path</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>This function places the result of the resolution into this URL in place.</text>
            </para>
            <para>
              <text>If an error occurs, the contents of this URL are unspecified and a </text>
              <mono>boost::system::result</mono>
              <text> with an </text>
              <mono>system::error_code</mono>
              <text> is returned.</text>
            </para>
            <para class="note">
              <text>Abnormal hrefs where the number of &quot;..&quot; segments exceeds the number of segments in the base path are handled by including the unmatched &quot;..&quot; segments in the result, as described in </text>
              <link href="https://www.rfc-editor.org/errata/eid4547">Errata 4547</link>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url base1( &quot;/one/two/three&quot; );
base1.resolve(&quot;four&quot;);
assert( base1.buffer() == &quot;/one/two/four&quot; );

url base2( &quot;http://example.com/&quot; )
base2.resolve(&quot;/one&quot;);
assert( base2.buffer() == &quot;http://example.com/one&quot; );

url base3( &quot;http://example.com/one&quot; );
base3.resolve(&quot;/two&quot;);
assert( base3.buffer() == &quot;http://example.com/two&quot; );

url base4( &quot;http://a/b/c/d;p?q&quot; );
base4.resolve(&quot;g#s&quot;);
assert( base4.buffer() == &quot;http://a/b/c/g#s&quot; );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Basic guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <returns>
              <text>An empty </text>
              <mono>boost::system::result</mono>
              <text> upon success, otherwise an error code if </text>
              <mono>!base.has_scheme()</mono>
              <text>.</text>
            </returns>
            <param name="ref">
              <text>The URL reference to resolve.</text>
            </param>
            <see>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <text>, </text>
              <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as a string.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
          <attr id="is-const"/>
          <return>
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns a value which depends on the scheme in the url:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the scheme is a well-known</text>
                <text>        scheme, corresponding value from</text>
                <text>        the enumeration </text>
                <reference>urls::scheme</reference>
                <text>        is returned.</text>
              </listitem>
              <listitem>
                <text>If a scheme is present but is not</text>
                <text>        a well-known scheme, the value</text>
                <text>        returned is </text>
                <reference>urls::scheme::unknown</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, if the scheme is absent</text>
                <text>        the value returned is</text>
                <text>        </text>
                <reference>urls::scheme::none</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as an enumeration value.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="7IUB1R6CP5b6VCTpQBgLFv27mfU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1952"/>
          <return>
            <type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="urls::segments_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments sv = u.segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="QP1V0/Bd4lTeXI0vaNEiUqgvkPQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1956" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_authority" id="VTO/x6AChJRFyjVKxhaqmIAvYFI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="365"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the authority</text>
            </brief>
            <para>
              <text>This function sets the authority to the specified string. The string may contain percent-escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_authority( &quot;My%20Computer&quot; ).has_authority() );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The authority string to set.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="cjTKMEM0IWRzDexmJAiWOj6P+ZI=">remove_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_fragment" id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2612"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may contain percent-escapes and which may be empty. An empty fragment is distinct from having no fragment. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john%2Ddoe&quot; ).fragment() == &quot;john-doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == decode_view( s )</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host" id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1028"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_address" id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1231"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_name" id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1567"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_encoded_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_params" exception-spec="noexcept" id="S9fyQqerhxu7yBt8GhsEJ9RKJl8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2420"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the elements in the list, which may contain percent-escapes and can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no query.</text>
            </para>
            <para>
              <text>Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_params( {&quot;id&quot;, &quot;42&quot;} ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <throws>
              <text>some element in </text>
              <mono>ps</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="6eTAKxxUVgfC1QD7w2yAukEvLs4=">set_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_password" id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="805"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_encoded_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_path" id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1895"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the url is semantically affected.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_encoded_path( &quot;path/to/file.txt&quot; );

assert( u.encoded_path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_query" id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2133"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which may contain percent-escapes and can be empty. An empty query is distinct from having no query. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_query( &quot;id=42&quot; ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == decode_view( s );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_user" id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="693"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo the the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_user(&quot;john%20doe&quot;).userinfo() == &quot;john doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_userinfo" id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="543"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo.</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_userinfo( &quot;john%20doe&quot; ).user() == &quot;john doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
              <text>, </text>
              <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_zone_id" id="/HsDRNr5aHRIzBwkJqZnZrdNZ/k=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1412"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="set_fragment" id="VHh7zoCWGsviuG3lWYA54cKWneU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2557"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may be empty. An empty fragment is distinct from having no fragment. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john doe&quot; ).encoded_fragment() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == s</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host" id="lhYybwvylnG/ieiGmyVfyExN3dw=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="942"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_address" id="ut25mVfVRShtv19Mg+nvS5jVATc=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1127"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host_address( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv4" id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1288"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv4 address. The host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com&quot;).set_host_ipv4( ipv4_address( &quot;127.0.0.1&quot; ) ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv4_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv4</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv6" id="BryTExdDEUoZs6riyC1Qi0/NtPE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1354"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv6 address. The host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipv6( ipv6_address( &quot;1::6:c0a8:1&quot; ) ).authority().buffer() == &quot;[1::6:c0a8:1]&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv6</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipvfuture" id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1465"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPvFuture string. The host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipvfuture( &quot;v42.bis&quot; ).buffer() == &quot;//[v42.bis]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipvfuture) == s &amp;&amp; this-&gt;host_type() == host_type::ipvfuture</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_name" id="Pt4icJRgJxULgQjbXV6yzBigNl8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1513"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may be empty. Reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_params" exception-spec="noexcept" id="6eTAKxxUVgfC1QD7w2yAukEvLs4=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2356"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <param name="opts" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the list of param_view, which can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no params.</text>
            </para>
            <para>
              <text>Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_params( {&quot;id&quot;, &quot;42&quot;} ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4
            &gt;3.4.  Query (rfc3986)&lt;/a&gt;
        @li &lt;a href=">://en.wikipedia.org/wiki/Query_string&quot;            &gt;Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <param name="opts">
              <text>The options for encoding.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_password" id="blkDquwzHtk7o5mJf/hdeY15zWg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="747"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true &amp;&amp; this-&gt;password() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path" id="0VMn4mT6ruiabbTCXyOFe+JATBg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1828"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may be empty. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the URL are semantically affected.</text>
            </para>
            <para class="note">
              <text>This function does not encode &apos;/&apos; chars, which are unreserved for paths but reserved for path segments. If a path segment should include encoded &apos;/&apos;s to differentiate it from path separators, the functions </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text> or </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text> should be used instead.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_path( &quot;path/to/file.txt&quot; );

assert( u.path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path_absolute" id="BHDHQef0k/8vd3QskLyTrsv7+DE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1761"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="absolute">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Set if the path is absolute</text>
            </brief>
            <para>
              <text>This function adjusts the path to make it absolute or not, depending on the parameter.</text>
            </para>
            <para class="note">
              <text>If an authority is present, the path is always absolute. In this case, the function has no effect.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;path/to/file.txt&quot; );
assert( u.set_path_absolute( true ) );
assert( u.buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;is_path_absolute() == true &amp;&amp; this-&gt;encoded_path().front() == &apos;/&apos;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>true on success.</text>
            </returns>
            <param name="absolute">
              <text>If </text>
              <mono>true</mono>
              <text>, the path is made absolute.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port" id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1657"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>This port is set to the string, which must contain only digits or be empty. An empty port string is distinct from having no port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port( &quot;8080&quot; ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n &amp;&amp; this-&gt;port() == std::to_string(n)</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The port string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> does not contain a valid port.</text>
            </throws>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port_number" id="4bptcCq14NmzqKQvnx54lE+28F0=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1613"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="n">
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>The port is set to the specified integer.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port_number( 8080 ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="n">
              <text>The port number to set.</text>
            </param>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_query" id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2077"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which can be empty. An empty query is distinct from having no query. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_query( &quot;id=42&quot; ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme" id="rKQfFZ6dfzeuSqZL+PgPNpIFQ5g=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="246"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>The scheme is set to the specified string, which must contain a valid scheme without any trailing colon (&apos;:&apos;). Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_scheme( &quot;https&quot; ).scheme_id() == scheme::https );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme        = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The scheme to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid scheme.</text>
            </throws>
            <see>
              <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme_id" id="iuTF0vS1Knzl0Hxr4iVhx35Fzdk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="281"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="id">
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>This function sets the scheme to the specified known </text>
              <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">urls::scheme</reference>
              <text> id, which may not be </text>
              <reference id="LJxTyQ55ot1WYLH7f46nZvdGU78=">scheme::unknown</reference>
              <text> or else an exception is thrown. If the id is </text>
              <reference id="VupiauVBXlZQ8Uix+vk8kSl+fM8=">scheme::none</reference>
              <text>, this function behaves as if </text>
              <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
              <text> were called.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).set_scheme_id( scheme::wss ).buffer() == &quot;wss://example.com/echo.cgi&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="id">
              <text>The scheme to set.</text>
            </param>
            <throws>
              <text>The scheme is invalid.</text>
            </throws>
          </doc>
        </function>
        <function name="set_user" id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="636"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo to the string. Any special or reserved characters in the string are automatically percent-encoded.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_user(&quot;john doe&quot;).encoded_userinfo() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_userinfo" id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="476"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_userinfo( &quot;user:pass&quot; ).encoded_user() == &quot;user&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
              <text>, </text>
              <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_zone_id" id="eM5mUh7EZ/5wyXKQEoMXhHD+KJk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1381"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address.</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the url</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the url.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <para class="note">
                <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text> for more information.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>When called with no arguments, a value of type </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
              </returns>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;encoded_zone_id().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the URL as a core::string_view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="mg8FRYZ94og9lKYjTEYdjucqHw4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are theoretically possible to represent in a url, not including any null terminator. In practice the actual possible size may be lower than this number.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters.</text>
            </returns>
          </doc>
        </function>
        <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="salt" default="0">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Calculate a hash of the url</text>
            </brief>
            <para>
              <text>This function calculates a hash of the url as if it were always normalized.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A hash value suitable for use in hash-based containers.</text>
            </returns>
            <param name="salt">
              <text>An initial value to add to the hash</text>
            </param>
          </doc>
        </function>
      </class>
      <class name="url" id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">
        <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="63" class="def"/>
        <base>
          <type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
        </base>
        <friend id="r+2jsv/V/6eYTTn9n6oVkgy6U/Y=">
          <befriended id="r+2jsv/V/6eYTTn9n6oVkgy6U/Y="/>
        </friend>
        <friend>
          <befriended type="std::hash&lt;url&gt;"/>
        </friend>
        <doc>
          <brief>
            <text>A modifiable container for a URL.</text>
          </brief>
          <para>
            <text>This container owns a url, represented by a null-terminated character buffer which is managed by performing dymamic memory allocations as needed. The contents may be inspected and modified, and the implementation maintains a useful invariant: changes to the url always leave it in a valid state.</text>
          </para>
          <head>Exception Safety</head>
          <unorderedlist>
            <listitem>
              <text>Functions marked `noexcept` provide the</text>
              <text>    no-throw guarantee, otherwise:</text>
            </listitem>
            <listitem>
              <text>Functions which throw offer the strong</text>
              <text>    exception safety guarantee.</text>
            </listitem>
          </unorderedlist>
          <head>BNF</head>
          <code>
            <text>URI-reference = URI / relative-ref

URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="3Pi5l1khAbVAQHD3fWi5GoHEr5E=">resolve</reference>
            <text>.</text>
          </see>
          <related>
            <reference id="LG7Qu14WVkSnLUAFX5+XlzESQwE=">format</reference>
            <reference id="WRjsPLk/mxfEVUX/NFq2baquRAU=">format</reference>
            <reference id="K7ofEKM2bNb4ZS9OFo0DX+7Ep9I=">format_to</reference>
            <reference id="ueXaMbO5jFzZWelOn6upDJcN55Y=">format_to</reference>
            <reference id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">operator!=</reference>
            <reference id="Si07vh35lnvnJy8tpXUIpiFEjGM=">operator&lt;</reference>
            <reference id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">operator&lt;=</reference>
            <reference id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">operator==</reference>
            <reference id="ngGy21anUjaZiQQJidHT5lvOC2w=">operator&gt;</reference>
            <reference id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">operator&gt;=</reference>
            <reference id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">resolve</reference>
          </related>
        </doc>
        <function class="constructor" name="url" exception-spec="noexcept" id="8Ih0d9yHn5x6rDTW+0U44b+zHcQ=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="120"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed urls contain a zero-length string. This matches the grammar for a relative-ref with an empty path and no query or fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
          </doc>
        </function>
        <function class="constructor" name="url" id="9wzWC4EmGwmpV2rTLilCJLj94RA=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="243" class="def"/>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The newly constructed object contains a copy of </text>
              <mono>u</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>u.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="u">
              <text>The url to copy.</text>
            </param>
            <throws>
              <mono>u.size() &gt; max_size()</mono>
              <text>.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="url" exception-spec="noexcept" id="Eh0hD4ukhWXmI/0dX74NQsJFfzk=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="194"/>
          <param name="u">
            <type class="rvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The contents of </text>
              <mono>u</mono>
              <text> are transferred to the newly constructed object, which includes the underlying character buffer. After construction, the moved-from object is as if default constructed.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>u.empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="u">
              <text>The url to move from.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="url" explicit-spec="explicit" id="AmJe7CtsMMZmoh30mytIyGKwIe8=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="169"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs a URL from the string </text>
              <mono>s</mono>
              <text>, which must contain a valid </text>
              <italic>URI</italic>
              <text> or </text>
              <italic>relative-ref</italic>
              <text> or else an exception is thrown. The new url retains ownership by allocating a copy of the passed string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;https://www.example.com&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return url( parse_uri_reference( s ).value() );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() != s.data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.1">4.1. URI Reference</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <text>The input does not contain a valid url.</text>
            </throws>
          </doc>
        </function>
        <function class="constructor" name="url" id="AWfbGWiWXIba/qYHse33W1kHUnY=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="217" class="def"/>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>The newly constructed object contains a copy of </text>
              <mono>u</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>u.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="u">
              <text>The url to copy.</text>
            </param>
            <throws>
              <mono>u.size() &gt; max_size()</mono>
              <text>.</text>
            </throws>
          </doc>
        </function>
        <function class="destructor" name="~url" id="8gjwLQiwQO+79ahc+7KjA0ZXvN8=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="85"/>
          <attr id="is-virtual-as-written"/>
          <doc>
            <brief>
              <text>Destructor</text>
            </brief>
            <para>
              <text>Any params, segments, iterators, or views which reference this object are invalidated. The underlying character buffer is destroyed, invalidating all references to it.</text>
            </para>
          </doc>
        </function>
        <function name="operator=" id="Y4IyJrOqprrb8HaheI5+ycWOhTU=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="329" class="def"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The contents of </text>
              <mono>u</mono>
              <text> are copied and the previous contents of </text>
              <mono>this</mono>
              <text> are destroyed. Capacity is preserved, or increases.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>u.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="u">
              <text>The url to copy.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" exception-spec="noexcept" id="krgrzyss3MdRjIlMP8Ne+a6k3V0=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="272"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="u">
            <type class="rvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The contents of </text>
              <mono>u</mono>
              <text> are transferred to </text>
              <mono>this</mono>
              <text>, including the underlying character buffer. The previous contents of </text>
              <mono>this</mono>
              <text> are destroyed. After assignment, the moved-from object is as if default constructed.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>u.empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="u">
              <text>The url to assign from.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="t1NUH4ftJ7Uw9eCFLD3V2tCUmGk=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="299" class="def"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>The contents of </text>
              <mono>u</mono>
              <text> are copied and the previous contents of </text>
              <mono>this</mono>
              <text> are destroyed. Capacity is preserved, or increases.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer() == u.buffer() &amp;&amp; this-&gt;buffer().data() != u.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>u.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="u">
              <text>The url to copy.</text>
            </param>
            <throws>
              <mono>u.size() &gt; max_size()</mono>
              <text>.</text>
            </throws>
          </doc>
        </function>
        <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
          <attr id="is-const"/>
          <return>
            <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority</text>
            </brief>
            <para>
              <text>This function returns the authority as an </text>
              <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>An authority_view representing the authority.</text>
            </returns>
            <see>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the url string</text>
            </brief>
            <para>
              <text>This function returns the entire url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The url as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="c_str" exception-spec="noexcept" id="OUdGewqojyZZ2vohOsR/ce3sgdM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="128" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the url as a null-terminated string</text>
            </brief>
            <para>
              <text>This function returns a pointer to a null terminated string representing the url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( std::strlen( url( &quot;http://www.example.com&quot; ).c_str() ) == 22 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to a null-terminated string containing the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="capacity" exception-spec="noexcept" id="FPqXKVymUm0eRCsXV1yuMFlv4ug=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="147" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters that can be stored without reallocating</text>
            </brief>
            <para>
              <text>This does not include the null terminator, which is always present.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="PMYRGpyOUt7hbDyd33GRHTcxEj8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="166" class="def"/>
          <doc>
            <brief>
              <text>Clear the contents while preserving the capacity</text>
            </brief>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>No-throw guarantee.</text>
            </para>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another url</text>
            </brief>
            <para>
              <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>min( u0.size(), u1.size() )</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>-1 if </text>
              <mono>*this &lt; other</mono>
              <text>, 0 if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The url to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the url&apos;s character buffer</text>
            </brief>
            <para>
              <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the url is empty</text>
            </brief>
            <para>
              <text>The empty string matches the </text>
              <italic>relative-ref</italic>
              <text> grammar.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url is empty.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority.</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The authority as a string.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the fragment</text>
            </brief>
            <para>
              <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The fragment portion of the url.</text>
            </returns>
            <see>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>, </text>
              <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port portion of the url.</text>
            </returns>
            <see>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the origin</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The origin portion of the url.</text>
            </returns>
            <see>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="aMmTh8VyfWGYracYniHLsug6OhI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2301"/>
          <return>
            <type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="JE/K4m/Ht4rR+eX6GaLeumryMhM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2249" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path</text>
            </brief>
            <para>
              <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The path as a string.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query</text>
            </brief>
            <para>
              <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query as a string.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the resource</text>
            </brief>
            <para>
              <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The resource portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="6FgVEvfQ0X7vaJ9TLmk6h3MBVPU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2015"/>
          <return>
            <type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments_encoded_ref sv = u.encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="5da2HmyZRkzKje3uZJyQ0Zr/GBI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of encoded segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the target</text>
            </brief>
            <para>
              <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The target portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the IPv6 Zone ID</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The Zone ID as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
              </para>
              <para>
                <text>This function accepts an optional </text>
                <italic>StringToken</italic>
                <text> parameter which controls the return type and behavior of the function:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>When called with no arguments,</text>
                  <text>        the return type of the function is</text>
                  <text>        `std::string`. Otherwise</text>
                </listitem>
                <listitem>
                  <text>When called with a string token,</text>
                  <text>        the behavior and return type of the</text>
                  <text>        function depends on the type of string</text>
                  <text>        token being passed.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <param name="token">
                <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                <mono>std::string</mono>
                <text>.</text>
              </param>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if an authority is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains an authority.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a fragment is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a fragment.</text>
            </returns>
            <see>
              <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
              <text>, </text>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo contains a password.</text>
            </returns>
            <see>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a query is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a query is present.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true a scheme is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a scheme.</text>
            </returns>
            <see>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo is present.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv4 address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv6 address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPvFuture address as a string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
              <listitem>
                <reference>host_type::none</reference>
              </listitem>
            </unorderedlist>
            <para>
              <text>When </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text> is false, the host type is </text>
              <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The type of host present.</text>
            </returns>
          </doc>
        </function>
        <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the path is absolute</text>
            </brief>
            <para>
              <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="normalize" id="uS6MtOtZL4NwRPb31WtogBq7xTA=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="499" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL components</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to all components of the URL.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_authority" id="V/k59YOgEYnss8lWiKPRddPXTrM=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="503" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL authority</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL authority.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_fragment" id="1V2arTLLdHjeX3t8BPS00NhUbuw=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="509" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL fragment</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL fragment.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_path" id="yqEPQDxp1rFnCl0FANFNlHq7di4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="505" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL path</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL path.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded. Redundant path-segments are removed.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_query" id="ewBqUnH0R6CY50UChPClD5/LPh4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="507" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL query</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL query.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_scheme" id="yw8gEO2DarlIt76PCQf2ychq86M=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="501" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL scheme</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL scheme.</text>
            </para>
            <para>
              <text>The scheme is normalized to lowercase.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="MYfnAHxNPsNhl4M31kQzwrirB9M=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2183"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="s9dRuYwynzv+XH3wi5E1LonuuYk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2187" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="yOAcBK51dE1EJqsBF6ZGTSEnocA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2245"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>encoding_opts opt;
opt.space_as_plus = true;
params_ref pv = url( &quot;/sql?id=42&amp;name=jane+doe&amp;page+size=20&quot; ).params(opt);</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A range of references to the parameters.</text>
            </returns>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, the </text>
              <mono>space_as_plus</mono>
              <text> is used.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;path().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <param name="token">
                <text>A string token to use for the result.</text>
              </param>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
          <attr id="is-const"/>
          <return>
            <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Return a shared, persistent copy of the url</text>
            </brief>
            <para>
              <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
            </para>
            <head>Example</head>
            <code>
              <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A shared pointer to a read-only url_view.</text>
            </returns>
          </doc>
        </function>
        <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number as an unsigned integer.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <param name="token">
                <text>A token to use for the returned string.</text>
              </param>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="remove_authority" id="uEUUViG9fk8nPLVDhOEq0ZwSt4k=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="422" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the authority</text>
            </brief>
            <para>
              <text>This function removes the authority, which includes the userinfo, host, and a port if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).remove_authority().buffer() == &quot;http:/echo.cgi&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == false &amp;&amp; this-&gt;has_userinfo() == false &amp;&amp; this-&gt;has_port() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="VTO/x6AChJRFyjVKxhaqmIAvYFI=">set_encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_fragment" exception-spec="noexcept" id="N46BFrejgcAWK9LoZJfnmCFfOQo=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="489" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the fragment</text>
            </brief>
            <para>
              <text>This function removes the fragment. An empty fragment is distinct from having no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;?first=john&amp;last=doe#anchor&quot; ).remove_fragment().buffer() == &quot;?first=john&amp;last=doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == false &amp;&amp; this-&gt;encoded_fragment() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_origin" id="m11SsNcuMK9xjCcQTH9YgmTOKU0=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="496" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the origin component</text>
            </brief>
            <para>
              <text>This function removes the origin, which consists of the scheme and authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot; ).remove_origin().buffer() == &quot;/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;scheme_id() == scheme::none &amp;&amp; this-&gt;has_authority() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="remove_password" exception-spec="noexcept" id="8csn1QWMkOmUIhniJ0RUu0RZwG4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="439" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the password</text>
            </brief>
            <para>
              <text>This function removes the password from the userinfo if a password exists. If there is no userinfo or no authority, the call has no effect.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user:pass@example.com&quot; ).remove_password().authority().buffer() == &quot;user@example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == false &amp;&amp; this-&gt;encoded_password().empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_port" exception-spec="noexcept" id="odPyefMzS7RR8SxYOkeOFWrJWCo=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="468" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the port</text>
            </brief>
            <para>
              <text>If a port exists, it is removed. The rest of the authority is unchanged.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com:80&quot; ).remove_port().authority().buffer() == &quot;www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == false &amp;&amp; this-&gt;port_number() == 0 &amp;&amp; this-&gt;port() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_query" exception-spec="noexcept" id="lqzeYddpaDdNhabYJKbZcKVR1sc=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="486" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the query</text>
            </brief>
            <para>
              <text>If a query is present, it is removed. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com?id=42&quot; ).remove_query().buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == false &amp;&amp; this-&gt;params().empty()</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_scheme" id="xoEDWd6f1PiR0V17DuoUOwC8MtA=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="417" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the scheme</text>
            </brief>
            <para>
              <text>This function removes the scheme if it is present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com/index.htm&quot; ).remove_scheme().buffer() == &quot;//www.example.com/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_scheme() == false &amp;&amp; this-&gt;scheme_id() == scheme::none</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="l5PbLvVICdt8q5T3JPg6iGiNsQw=">set_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_userinfo" exception-spec="noexcept" id="H68DAna577ehzNnUHjAoRKLb1Lo=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="429" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the userinfo</text>
            </brief>
            <para>
              <text>This function removes the userinfo if present, without removing any authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user@example.com&quot; ).remove_userinfo().has_userinfo() == false );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_userinfo() == false &amp;&amp; this-&gt;encoded_userinfo().empty == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
              <text>, </text>
              <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="reserve" id="R5AajT/eZPgijKrm8AxolAdhsRQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="188" class="def"/>
          <param name="n">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Adjust the capacity without changing the size</text>
            </brief>
            <para>
              <text>This function adjusts the capacity of the container in characters, without affecting the current contents. Has no effect if </text>
              <mono>n &lt;= this-&gt;capacity()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="n">
              <text>The capacity in characters, excluding any null terminator.</text>
            </param>
            <throws>
              <text>Allocation failure</text>
            </throws>
          </doc>
        </function>
        <function name="resolve" id="3Pi5l1khAbVAQHD3fWi5GoHEr5E=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2888"/>
          <return>
            <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;void&gt;"/>
          </return>
          <param name="ref">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Resolve a URL reference against this base URL</text>
            </brief>
            <para>
              <text>This function attempts to resolve a URL reference </text>
              <mono>ref</mono>
              <text> against this base URL in a manner similar to that of a web browser resolving an anchor tag.</text>
            </para>
            <para>
              <text>This URL must satisfy the </text>
              <italic>URI</italic>
              <text> grammar. In other words, it must contain a scheme.</text>
            </para>
            <para>
              <text>Relative references are only usable when in the context of a base absolute URI. This process of resolving a relative </text>
              <italic>reference</italic>
              <text> within the context of a </text>
              <italic>base</italic>
              <text> URI is defined in detail in rfc3986 (see below).</text>
            </para>
            <para>
              <text>The resolution process works as if the relative reference is appended to the base URI and the result is normalized.</text>
            </para>
            <para>
              <text>Given the input base URL, this function resolves the relative reference as if performing the following steps:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>Ensure the base URI has at least a scheme</text>
              </listitem>
              <listitem>
                <text>Normalizing the reference path</text>
              </listitem>
              <listitem>
                <text>Merge base and reference paths</text>
              </listitem>
              <listitem>
                <text>Normalize the merged path</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>This function places the result of the resolution into this URL in place.</text>
            </para>
            <para>
              <text>If an error occurs, the contents of this URL are unspecified and a </text>
              <mono>boost::system::result</mono>
              <text> with an </text>
              <mono>system::error_code</mono>
              <text> is returned.</text>
            </para>
            <para class="note">
              <text>Abnormal hrefs where the number of &quot;..&quot; segments exceeds the number of segments in the base path are handled by including the unmatched &quot;..&quot; segments in the result, as described in </text>
              <link href="https://www.rfc-editor.org/errata/eid4547">Errata 4547</link>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url base1( &quot;/one/two/three&quot; );
base1.resolve(&quot;four&quot;);
assert( base1.buffer() == &quot;/one/two/four&quot; );

url base2( &quot;http://example.com/&quot; )
base2.resolve(&quot;/one&quot;);
assert( base2.buffer() == &quot;http://example.com/one&quot; );

url base3( &quot;http://example.com/one&quot; );
base3.resolve(&quot;/two&quot;);
assert( base3.buffer() == &quot;http://example.com/two&quot; );

url base4( &quot;http://a/b/c/d;p?q&quot; );
base4.resolve(&quot;g#s&quot;);
assert( base4.buffer() == &quot;http://a/b/c/g#s&quot; );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Basic guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <returns>
              <text>An empty </text>
              <mono>boost::system::result</mono>
              <text> upon success, otherwise an error code if </text>
              <mono>!base.has_scheme()</mono>
              <text>.</text>
            </returns>
            <param name="ref">
              <text>The URL reference to resolve.</text>
            </param>
            <see>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <text>, </text>
              <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as a string.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
          <attr id="is-const"/>
          <return>
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns a value which depends on the scheme in the url:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the scheme is a well-known</text>
                <text>        scheme, corresponding value from</text>
                <text>        the enumeration </text>
                <reference>urls::scheme</reference>
                <text>        is returned.</text>
              </listitem>
              <listitem>
                <text>If a scheme is present but is not</text>
                <text>        a well-known scheme, the value</text>
                <text>        returned is </text>
                <reference>urls::scheme::unknown</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, if the scheme is absent</text>
                <text>        the value returned is</text>
                <text>        </text>
                <reference>urls::scheme::none</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as an enumeration value.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="7IUB1R6CP5b6VCTpQBgLFv27mfU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1952"/>
          <return>
            <type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="urls::segments_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments sv = u.segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="QP1V0/Bd4lTeXI0vaNEiUqgvkPQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1956" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_authority" id="vE7KhYOtypUWNHBo2RGCbzuduNc=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="420" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the authority</text>
            </brief>
            <para>
              <text>This function sets the authority to the specified string. The string may contain percent-escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_authority( &quot;My%20Computer&quot; ).has_authority() );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The authority string to set.</text>
            </param>
            <see>
              <reference id="cjTKMEM0IWRzDexmJAiWOj6P+ZI=">remove_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_fragment" id="Q/h1CpdR46KA14VnTvzSNYO/Z9M=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="493" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may contain percent-escapes and which may be empty. An empty fragment is distinct from having no fragment. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john%2Ddoe&quot; ).fragment() == &quot;john-doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == decode_view( s )</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host" id="QqGtJJ8cl1csXN2HqSLBxfqqw8I=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="444" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_address" id="8vNpsCqkIshI8Vwi9MI/QwEbWNE=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="448" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_name" id="x6Se85PURXLDVUkc0nIMfry4QWk=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="462" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_encoded_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_params" id="1EkZhuzR+KSDgGVlnI0A/GdR6Fs=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="484" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the elements in the list, which may contain percent-escapes and can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no query.</text>
            </para>
            <para>
              <text>Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_params( {&quot;id&quot;, &quot;42&quot;} ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <see>
              <reference id="PXWUIWedy7d9zkfR48y2dfaPVDo=">set_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="lqzeYddpaDdNhabYJKbZcKVR1sc=">remove_query</reference>
              <text>, </text>
              <reference id="FfxhA5mBZ2/8cwSUixtcx3WcR/k=">set_encoded_query</reference>
              <text>, </text>
              <reference id="28viuAEHui7vd0hJTnE+g+nEWPM=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_password" id="d6h7pMb0CVly+yxJA3qTA9oUkyg=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="437" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_encoded_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_path" id="tlGS2xlooVieoE1F6taSONIunW8=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="475" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the url is semantically affected.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_encoded_path( &quot;path/to/file.txt&quot; );

assert( u.encoded_path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="8Nou0ZhJ8DhQBDRFYHX+OQrxd1g=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_query" id="FfxhA5mBZ2/8cwSUixtcx3WcR/k=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="480" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which may contain percent-escapes and can be empty. An empty query is distinct from having no query. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_query( &quot;id=42&quot; ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == decode_view( s );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_user" id="FVik3N3tY4odaRANj5Yd7ryYKbM=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="433" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo the the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_user(&quot;john%20doe&quot;).userinfo() == &quot;john doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_userinfo" id="ZR2L8oYjRtrb4ZxwO002IH7YyPQ=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="427" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo.</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_userinfo( &quot;john%20doe&quot; ).user() == &quot;john doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="H68DAna577ehzNnUHjAoRKLb1Lo=">remove_userinfo</reference>
              <text>, </text>
              <reference id="tbHsdn3vwHk6vomi64efnJApwUQ=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_zone_id" id="/HsDRNr5aHRIzBwkJqZnZrdNZ/k=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1412"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="set_encoded_zone_id" id="RMFUW/JJZyWG3XqrC9XU/QCaYC4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="456" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type class="lvalue-reference">
              <pointee-type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
          </doc>
        </function>
        <function name="set_fragment" id="l0wVo04A61xkHZCraU8BRdp8FT0=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="491" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may be empty. An empty fragment is distinct from having no fragment. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john doe&quot; ).encoded_fragment() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == s</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host" id="NV17VD5RB4tRGVitD/ItS62klWA=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="442" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_address" id="RcbCWApESayzhWcmWzKY7sLRW3I=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="446" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host_address( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv4" id="j1vvfyYzdHeOi3rAip91G6UwdI4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="450" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv4 address. The host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com&quot;).set_host_ipv4( ipv4_address( &quot;127.0.0.1&quot; ) ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv4_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv4</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="QqGtJJ8cl1csXN2HqSLBxfqqw8I=">set_encoded_host</reference>
              <text>, </text>
              <reference id="8vNpsCqkIshI8Vwi9MI/QwEbWNE=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="x6Se85PURXLDVUkc0nIMfry4QWk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="NV17VD5RB4tRGVitD/ItS62klWA=">set_host</reference>
              <text>, </text>
              <reference id="RcbCWApESayzhWcmWzKY7sLRW3I=">set_host_address</reference>
              <text>, </text>
              <reference id="JXOJMhugDCIztmyysqXCpJe4+6Q=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="FAvM0R9wWtIopo0UEVBu36r+rLs=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="WX0WCadEsealUT2/UWMRohJ83A8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv6" id="JXOJMhugDCIztmyysqXCpJe4+6Q=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="452" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv6 address. The host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipv6( ipv6_address( &quot;1::6:c0a8:1&quot; ) ).authority().buffer() == &quot;[1::6:c0a8:1]&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv6</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipvfuture" id="FAvM0R9wWtIopo0UEVBu36r+rLs=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="458" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPvFuture string. The host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipvfuture( &quot;v42.bis&quot; ).buffer() == &quot;//[v42.bis]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipvfuture) == s &amp;&amp; this-&gt;host_type() == host_type::ipvfuture</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_name" id="WX0WCadEsealUT2/UWMRohJ83A8=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="460" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may be empty. Reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_params" id="PXWUIWedy7d9zkfR48y2dfaPVDo=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="482" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <param name="opts" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the list of param_view, which can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no params.</text>
            </para>
            <para>
              <text>Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_params( {&quot;id&quot;, &quot;42&quot;} ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4
            &gt;3.4.  Query (rfc3986)&lt;/a&gt;
        @li &lt;a href=">://en.wikipedia.org/wiki/Query_string&quot;            &gt;Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <param name="opts">
              <text>The options for encoding.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_password" id="RT+5kxvCEY+rBBTsbgzooRi73rM=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="435" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true &amp;&amp; this-&gt;password() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <see>
              <reference id="8csn1QWMkOmUIhniJ0RUu0RZwG4=">remove_password</reference>
              <text>, </text>
              <reference id="d6h7pMb0CVly+yxJA3qTA9oUkyg=">set_encoded_password</reference>
              <text>, </text>
              <reference id="FVik3N3tY4odaRANj5Yd7ryYKbM=">set_encoded_user</reference>
              <text>, </text>
              <reference id="bdwdrMSefiuKM7oY4Cga3Q9MJp4=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path" id="8Nou0ZhJ8DhQBDRFYHX+OQrxd1g=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="473" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may be empty. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the URL are semantically affected.</text>
            </para>
            <para class="note">
              <text>This function does not encode &apos;/&apos; chars, which are unreserved for paths but reserved for path segments. If a path segment should include encoded &apos;/&apos;s to differentiate it from path separators, the functions </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text> or </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text> should be used instead.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_path( &quot;path/to/file.txt&quot; );

assert( u.path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path_absolute" id="BHDHQef0k/8vd3QskLyTrsv7+DE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1761"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="absolute">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Set if the path is absolute</text>
            </brief>
            <para>
              <text>This function adjusts the path to make it absolute or not, depending on the parameter.</text>
            </para>
            <para class="note">
              <text>If an authority is present, the path is always absolute. In this case, the function has no effect.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;path/to/file.txt&quot; );
assert( u.set_path_absolute( true ) );
assert( u.buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;is_path_absolute() == true &amp;&amp; this-&gt;encoded_path().front() == &apos;/&apos;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>true on success.</text>
            </returns>
            <param name="absolute">
              <text>If </text>
              <mono>true</mono>
              <text>, the path is made absolute.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port" id="ThaNWrwh5iKGzqCX2N+LX3KLHhE=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="466" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>This port is set to the string, which must contain only digits or be empty. An empty port string is distinct from having no port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port( &quot;8080&quot; ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n &amp;&amp; this-&gt;port() == std::to_string(n)</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The port string to set.</text>
            </param>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port_number" id="Ap8PBa2tnaS+9s4pC2/HSbsJ2W8=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="464" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="n">
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>The port is set to the specified integer.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port_number( 8080 ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="n">
              <text>The port number to set.</text>
            </param>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_query" id="28viuAEHui7vd0hJTnE+g+nEWPM=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="478" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which can be empty. An empty query is distinct from having no query. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_query( &quot;id=42&quot; ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme" id="l5PbLvVICdt8q5T3JPg6iGiNsQw=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="413" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>The scheme is set to the specified string, which must contain a valid scheme without any trailing colon (&apos;:&apos;). Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_scheme( &quot;https&quot; ).scheme_id() == scheme::https );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme        = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The scheme to set.</text>
            </param>
            <see>
              <reference id="xoEDWd6f1PiR0V17DuoUOwC8MtA=">remove_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme_id" id="rOaH2oJeKO+BU3TB90QiuF0FRCw=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="415" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="id">
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>This function sets the scheme to the specified known </text>
              <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">urls::scheme</reference>
              <text> id, which may not be </text>
              <reference id="LJxTyQ55ot1WYLH7f46nZvdGU78=">scheme::unknown</reference>
              <text> or else an exception is thrown. If the id is </text>
              <reference id="VupiauVBXlZQ8Uix+vk8kSl+fM8=">scheme::none</reference>
              <text>, this function behaves as if </text>
              <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
              <text> were called.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).set_scheme_id( scheme::wss ).buffer() == &quot;wss://example.com/echo.cgi&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="id">
              <text>The scheme to set.</text>
            </param>
          </doc>
        </function>
        <function name="set_user" id="bdwdrMSefiuKM7oY4Cga3Q9MJp4=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="431" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo to the string. Any special or reserved characters in the string are automatically percent-encoded.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_user(&quot;john doe&quot;).encoded_userinfo() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_userinfo" id="tbHsdn3vwHk6vomi64efnJApwUQ=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="425" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_userinfo( &quot;user:pass&quot; ).encoded_user() == &quot;user&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="H68DAna577ehzNnUHjAoRKLb1Lo=">remove_userinfo</reference>
              <text>, </text>
              <reference id="ZR2L8oYjRtrb4ZxwO002IH7YyPQ=">set_encoded_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_zone_id" id="f8Xcvlga8PU/hVmzDg6ehOPfDYs=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="454" class="def"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address.</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the url</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the url.</text>
            </returns>
          </doc>
        </function>
        <function name="swap" exception-spec="noexcept" id="iZ1eWw5IAl1ilQ72KPrht00pGzU=">
          <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="363"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Swap the contents.</text>
            </brief>
            <para>
              <text>Exchanges the contents of this url with another url. All views, iterators and references remain valid.</text>
            </para>
            <para>
              <text>If </text>
              <mono>this == &amp;other</mono>
              <text>, this function call has no effect.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u1( &quot;https://www.example.com&quot; );
url u2( &quot;https://www.boost.org&quot; );
u1.swap(u2);
assert(u1 == &quot;https://www.boost.org&quot; );
assert(u2 == &quot;https://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The object to swap with</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <para class="note">
                <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text> for more information.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>When called with no arguments, a value of type </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
              </returns>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;encoded_zone_id().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the URL as a core::string_view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="mg8FRYZ94og9lKYjTEYdjucqHw4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are theoretically possible to represent in a url, not including any null terminator. In practice the actual possible size may be lower than this number.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters.</text>
            </returns>
          </doc>
        </function>
        <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="salt" default="0">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Calculate a hash of the url</text>
            </brief>
            <para>
              <text>This function calculates a hash of the url as if it were always normalized.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A hash value suitable for use in hash-based containers.</text>
            </returns>
            <param name="salt">
              <text>An initial value to add to the hash</text>
            </param>
          </doc>
        </function>
      </class>
      <class name="url_base" id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
        <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="61" class="def"/>
        <file short-path="boost/url/params_encoded_ref.hpp" source-path="include/boost/url/params_encoded_ref.hpp" line="23"/>
        <file short-path="boost/url/params_ref.hpp" source-path="include/boost/url/params_ref.hpp" line="24"/>
        <file short-path="boost/url/segments_encoded_ref.hpp" source-path="include/boost/url/segments_encoded_ref.hpp" line="23"/>
        <file short-path="boost/url/segments_ref.hpp" source-path="include/boost/url/segments_ref.hpp" line="23"/>
        <base>
          <type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base"/>
        </base>
        <friend id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">
          <befriended id="/6zWjIFN5df0PBj9zFsfNUjNY6s="/>
        </friend>
        <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
          <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
        </friend>
        <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
          <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
        </friend>
        <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
          <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
        </friend>
        <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
          <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
        </friend>
        <friend id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">
          <befriended id="dmsqdje8dXFRFgNB9wxOs9Y5nb8="/>
        </friend>
        <friend id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">
          <befriended id="B4dRaSXMG3fDmuNKMW3KOeRu6kA="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for containers</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common member functions for containers. This cannot be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>url</reference>
            </listitem>
            <listitem>
              <reference>url_view</reference>
            </listitem>
            <listitem>
              <reference>static_url</reference>
            </listitem>
          </unorderedlist>
          <head>Functions</head>
          <unorderedlist>
            <listitem>
              <reference>parse_absolute_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_origin_form</reference>
            </listitem>
            <listitem>
              <reference>parse_relative_ref</reference>
            </listitem>
            <listitem>
              <reference>parse_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_uri_reference</reference>
            </listitem>
          </unorderedlist>
          <related>
            <reference id="K7ofEKM2bNb4ZS9OFo0DX+7Ep9I=">format_to</reference>
            <reference id="ueXaMbO5jFzZWelOn6upDJcN55Y=">format_to</reference>
            <reference id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">operator!=</reference>
            <reference id="Si07vh35lnvnJy8tpXUIpiFEjGM=">operator&lt;</reference>
            <reference id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">operator&lt;=</reference>
            <reference id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">operator==</reference>
            <reference id="ngGy21anUjaZiQQJidHT5lvOC2w=">operator&gt;</reference>
            <reference id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">operator&gt;=</reference>
          </related>
        </doc>
        <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
          <attr id="is-const"/>
          <return>
            <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority</text>
            </brief>
            <para>
              <text>This function returns the authority as an </text>
              <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>An authority_view representing the authority.</text>
            </returns>
            <see>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the url string</text>
            </brief>
            <para>
              <text>This function returns the entire url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The url as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="c_str" exception-spec="noexcept" id="OUdGewqojyZZ2vohOsR/ce3sgdM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="128" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return the url as a null-terminated string</text>
            </brief>
            <para>
              <text>This function returns a pointer to a null terminated string representing the url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( std::strlen( url( &quot;http://www.example.com&quot; ).c_str() ) == 22 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to a null-terminated string containing the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="capacity" exception-spec="noexcept" id="FPqXKVymUm0eRCsXV1yuMFlv4ug=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="147" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters that can be stored without reallocating</text>
            </brief>
            <para>
              <text>This does not include the null terminator, which is always present.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="clear" exception-spec="noexcept" id="PMYRGpyOUt7hbDyd33GRHTcxEj8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="166" class="def"/>
          <doc>
            <brief>
              <text>Clear the contents while preserving the capacity</text>
            </brief>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>No-throw guarantee.</text>
            </para>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another url</text>
            </brief>
            <para>
              <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>min( u0.size(), u1.size() )</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>-1 if </text>
              <mono>*this &lt; other</mono>
              <text>, 0 if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The url to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the url&apos;s character buffer</text>
            </brief>
            <para>
              <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the url is empty</text>
            </brief>
            <para>
              <text>The empty string matches the </text>
              <italic>relative-ref</italic>
              <text> grammar.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url is empty.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority.</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The authority as a string.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the fragment</text>
            </brief>
            <para>
              <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The fragment portion of the url.</text>
            </returns>
            <see>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>, </text>
              <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port portion of the url.</text>
            </returns>
            <see>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the origin</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The origin portion of the url.</text>
            </returns>
            <see>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="aMmTh8VyfWGYracYniHLsug6OhI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2301"/>
          <return>
            <type id="oR5B5D0/JYTOQYvyFXRv+at91JE=" name="params_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="JE/K4m/Ht4rR+eX6GaLeumryMhM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2249" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path</text>
            </brief>
            <para>
              <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The path as a string.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query</text>
            </brief>
            <para>
              <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query as a string.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the resource</text>
            </brief>
            <para>
              <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The resource portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="6FgVEvfQ0X7vaJ9TLmk6h3MBVPU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2015"/>
          <return>
            <type id="TCUUfRiqZjX62kt7tK2fs//VWr0=" name="segments_encoded_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments_encoded_ref sv = u.encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="5da2HmyZRkzKje3uZJyQ0Zr/GBI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of encoded segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the target</text>
            </brief>
            <para>
              <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The target portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the IPv6 Zone ID</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The Zone ID as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
              </para>
              <para>
                <text>This function accepts an optional </text>
                <italic>StringToken</italic>
                <text> parameter which controls the return type and behavior of the function:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>When called with no arguments,</text>
                  <text>        the return type of the function is</text>
                  <text>        `std::string`. Otherwise</text>
                </listitem>
                <listitem>
                  <text>When called with a string token,</text>
                  <text>        the behavior and return type of the</text>
                  <text>        function depends on the type of string</text>
                  <text>        token being passed.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <param name="token">
                <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                <mono>std::string</mono>
                <text>.</text>
              </param>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if an authority is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains an authority.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a fragment is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a fragment.</text>
            </returns>
            <see>
              <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
              <text>, </text>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo contains a password.</text>
            </returns>
            <see>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a query is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a query is present.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true a scheme is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a scheme.</text>
            </returns>
            <see>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo is present.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv4 address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv6 address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPvFuture address as a string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
              <listitem>
                <reference>host_type::none</reference>
              </listitem>
            </unorderedlist>
            <para>
              <text>When </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text> is false, the host type is </text>
              <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The type of host present.</text>
            </returns>
          </doc>
        </function>
        <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the path is absolute</text>
            </brief>
            <para>
              <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="normalize" id="ldUmQToJNGQ58j33Mti85clcGbM=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2670"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL components</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to all components of the URL.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_authority" id="j2lB1y9ywFNpGt8xXYkZZuJbs30=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2715"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL authority</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL authority.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_fragment" id="R2y0tPa5JiRRSTNXgUjKdMoCOcA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2788"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL fragment</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL fragment.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_path" id="pjVn3eVVaWNAixzkPBECE+lKByQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2740"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL path</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL path.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded. Redundant path-segments are removed.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_query" id="4CZ8ebKgivCQbRJoYD78PmOko2U=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2764"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL query</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL query.</text>
            </para>
            <para>
              <text>Percent-encoding triplets are normalized to uppercase letters. Percent-encoded octets that correspond to unreserved characters are decoded.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="normalize_scheme" id="iyO2AawtEbzXMJkvSocn7BpBBrI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2691"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Normalize the URL scheme</text>
            </brief>
            <para>
              <text>Applies Syntax-based normalization to the URL scheme.</text>
            </para>
            <para>
              <text>The scheme is normalized to lowercase.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="MYfnAHxNPsNhl4M31kQzwrirB9M=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2183"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_ref pv = url( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="s9dRuYwynzv+XH3wi5E1LonuuYk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2187" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="yOAcBK51dE1EJqsBF6ZGTSEnocA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2245"/>
          <return>
            <type id="8S83BKvWBCDdTktlY8X93Mlo9E0=" name="params_ref"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>encoding_opts opt;
opt.space_as_plus = true;
params_ref pv = url( &quot;/sql?id=42&amp;name=jane+doe&amp;page+size=20&quot; ).params(opt);</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A range of references to the parameters.</text>
            </returns>
            <param name="opt">
              <text>The options for decoding. If this parameter is omitted, the </text>
              <mono>space_as_plus</mono>
              <text> is used.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;path().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <param name="token">
                <text>A string token to use for the result.</text>
              </param>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
          <attr id="is-const"/>
          <return>
            <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Return a shared, persistent copy of the url</text>
            </brief>
            <para>
              <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
            </para>
            <head>Example</head>
            <code>
              <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A shared pointer to a read-only url_view.</text>
            </returns>
          </doc>
        </function>
        <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number as an unsigned integer.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <param name="token">
                <text>A token to use for the returned string.</text>
              </param>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="remove_authority" id="cjTKMEM0IWRzDexmJAiWOj6P+ZI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="409"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the authority</text>
            </brief>
            <para>
              <text>This function removes the authority, which includes the userinfo, host, and a port if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).remove_authority().buffer() == &quot;http:/echo.cgi&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == false &amp;&amp; this-&gt;has_userinfo() == false &amp;&amp; this-&gt;has_port() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="VTO/x6AChJRFyjVKxhaqmIAvYFI=">set_encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_fragment" exception-spec="noexcept" id="aGhIz5PP9XtdztICzhAvM4n92Sg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2511"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the fragment</text>
            </brief>
            <para>
              <text>This function removes the fragment. An empty fragment is distinct from having no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;?first=john&amp;last=doe#anchor&quot; ).remove_fragment().buffer() == &quot;?first=john&amp;last=doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == false &amp;&amp; this-&gt;encoded_fragment() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_origin" id="OqDHBYUjGSW4mGYuSUu09xFSlEc=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2645"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the origin component</text>
            </brief>
            <para>
              <text>This function removes the origin, which consists of the scheme and authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot; ).remove_origin().buffer() == &quot;/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;scheme_id() == scheme::none &amp;&amp; this-&gt;has_authority() == false</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <mono>*this</mono>
            </returns>
          </doc>
        </function>
        <function name="remove_password" exception-spec="noexcept" id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="858"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the password</text>
            </brief>
            <para>
              <text>This function removes the password from the userinfo if a password exists. If there is no userinfo or no authority, the call has no effect.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user:pass@example.com&quot; ).remove_password().authority().buffer() == &quot;user@example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == false &amp;&amp; this-&gt;encoded_password().empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_port" exception-spec="noexcept" id="ADa0xIsiS8APEAdL3+s0LoNowA8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1697"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the port</text>
            </brief>
            <para>
              <text>If a port exists, it is removed. The rest of the authority is unchanged.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com:80&quot; ).remove_port().authority().buffer() == &quot;www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == false &amp;&amp; this-&gt;port_number() == 0 &amp;&amp; this-&gt;port() == &quot;&quot;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_query" exception-spec="noexcept" id="ZZWEzCK7DguUxc3TvUfizoGKplE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2464"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the query</text>
            </brief>
            <para>
              <text>If a query is present, it is removed. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com?id=42&quot; ).remove_query().buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == false &amp;&amp; this-&gt;params().empty()</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_scheme" id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="319"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the scheme</text>
            </brief>
            <para>
              <text>This function removes the scheme if it is present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com/index.htm&quot; ).remove_scheme().buffer() == &quot;//www.example.com/index.htm&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_scheme() == false &amp;&amp; this-&gt;scheme_id() == scheme::none</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="rKQfFZ6dfzeuSqZL+PgPNpIFQ5g=">set_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="remove_userinfo" exception-spec="noexcept" id="PjTTglJlJuEwKHuRXGByi7wW8W8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="586"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Remove the userinfo</text>
            </brief>
            <para>
              <text>This function removes the userinfo if present, without removing any authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://user@example.com&quot; ).remove_userinfo().has_userinfo() == false );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_userinfo() == false &amp;&amp; this-&gt;encoded_userinfo().empty == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
              <text>, </text>
              <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="reserve" id="R5AajT/eZPgijKrm8AxolAdhsRQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="188" class="def"/>
          <param name="n">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Adjust the capacity without changing the size</text>
            </brief>
            <para>
              <text>This function adjusts the capacity of the container in characters, without affecting the current contents. Has no effect if </text>
              <mono>n &lt;= this-&gt;capacity()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <param name="n">
              <text>The capacity in characters, excluding any null terminator.</text>
            </param>
            <throws>
              <text>Allocation failure</text>
            </throws>
          </doc>
        </function>
        <function name="resolve" id="3Pi5l1khAbVAQHD3fWi5GoHEr5E=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2888"/>
          <return>
            <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;void&gt;"/>
          </return>
          <param name="ref">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Resolve a URL reference against this base URL</text>
            </brief>
            <para>
              <text>This function attempts to resolve a URL reference </text>
              <mono>ref</mono>
              <text> against this base URL in a manner similar to that of a web browser resolving an anchor tag.</text>
            </para>
            <para>
              <text>This URL must satisfy the </text>
              <italic>URI</italic>
              <text> grammar. In other words, it must contain a scheme.</text>
            </para>
            <para>
              <text>Relative references are only usable when in the context of a base absolute URI. This process of resolving a relative </text>
              <italic>reference</italic>
              <text> within the context of a </text>
              <italic>base</italic>
              <text> URI is defined in detail in rfc3986 (see below).</text>
            </para>
            <para>
              <text>The resolution process works as if the relative reference is appended to the base URI and the result is normalized.</text>
            </para>
            <para>
              <text>Given the input base URL, this function resolves the relative reference as if performing the following steps:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>Ensure the base URI has at least a scheme</text>
              </listitem>
              <listitem>
                <text>Normalizing the reference path</text>
              </listitem>
              <listitem>
                <text>Merge base and reference paths</text>
              </listitem>
              <listitem>
                <text>Normalize the merged path</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>This function places the result of the resolution into this URL in place.</text>
            </para>
            <para>
              <text>If an error occurs, the contents of this URL are unspecified and a </text>
              <mono>boost::system::result</mono>
              <text> with an </text>
              <mono>system::error_code</mono>
              <text> is returned.</text>
            </para>
            <para class="note">
              <text>Abnormal hrefs where the number of &quot;..&quot; segments exceeds the number of segments in the base path are handled by including the unmatched &quot;..&quot; segments in the result, as described in </text>
              <link href="https://www.rfc-editor.org/errata/eid4547">Errata 4547</link>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url base1( &quot;/one/two/three&quot; );
base1.resolve(&quot;four&quot;);
assert( base1.buffer() == &quot;/one/two/four&quot; );

url base2( &quot;http://example.com/&quot; )
base2.resolve(&quot;/one&quot;);
assert( base2.buffer() == &quot;http://example.com/one&quot; );

url base3( &quot;http://example.com/one&quot; );
base3.resolve(&quot;/two&quot;);
assert( base3.buffer() == &quot;http://example.com/two&quot; );

url base4( &quot;http://a/b/c/d;p?q&quot; );
base4.resolve(&quot;g#s&quot;);
assert( base4.buffer() == &quot;http://a/b/c/g#s&quot; );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Basic guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <returns>
              <text>An empty </text>
              <mono>boost::system::result</mono>
              <text> upon success, otherwise an error code if </text>
              <mono>!base.has_scheme()</mono>
              <text>.</text>
            </returns>
            <param name="ref">
              <text>The URL reference to resolve.</text>
            </param>
            <see>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <text>, </text>
              <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as a string.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
          <attr id="is-const"/>
          <return>
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns a value which depends on the scheme in the url:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the scheme is a well-known</text>
                <text>        scheme, corresponding value from</text>
                <text>        the enumeration </text>
                <reference>urls::scheme</reference>
                <text>        is returned.</text>
              </listitem>
              <listitem>
                <text>If a scheme is present but is not</text>
                <text>        a well-known scheme, the value</text>
                <text>        returned is </text>
                <reference>urls::scheme::unknown</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, if the scheme is absent</text>
                <text>        the value returned is</text>
                <text>        </text>
                <reference>urls::scheme::none</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as an enumeration value.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="7IUB1R6CP5b6VCTpQBgLFv27mfU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1952"/>
          <return>
            <type id="zdr3gU7+2/G05oo6ta/IfHlkTF0=" name="urls::segments_ref"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of segments over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first. The container is modifiable; changes to the container are reflected in the underlying URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://example.com/path/to/file.txt&quot; );

segments sv = u.segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="QP1V0/Bd4lTeXI0vaNEiUqgvkPQ=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1956" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_authority" id="VTO/x6AChJRFyjVKxhaqmIAvYFI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="365"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the authority</text>
            </brief>
            <para>
              <text>This function sets the authority to the specified string. The string may contain percent-escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_authority( &quot;My%20Computer&quot; ).has_authority() );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The authority string to set.</text>
            </param>
            <throws>
              <text>The string contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="cjTKMEM0IWRzDexmJAiWOj6P+ZI=">remove_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_fragment" id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2612"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may contain percent-escapes and which may be empty. An empty fragment is distinct from having no fragment. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john%2Ddoe&quot; ).fragment() == &quot;john-doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == decode_view( s )</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="VHh7zoCWGsviuG3lWYA54cKWneU=">set_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host" id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1028"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_address" id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1231"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string. This string can contain percent</text>
                <text>        escapes, or can be empty.</text>
                <text>        Escapes in the string are preserved,</text>
                <text>        and reserved characters in the string</text>
                <text>        are percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_host_name" id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1567"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_encoded_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_params" exception-spec="noexcept" id="S9fyQqerhxu7yBt8GhsEJ9RKJl8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2420"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_pct_view&gt;"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the elements in the list, which may contain percent-escapes and can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no query.</text>
            </para>
            <para>
              <text>Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_params( {&quot;id&quot;, &quot;42&quot;} ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <throws>
              <text>some element in </text>
              <mono>ps</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="6eTAKxxUVgfC1QD7w2yAukEvLs4=">set_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_password" id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="805"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_encoded_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_path" id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1895"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may contain percent-escapes and can be empty. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the url is semantically affected.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_encoded_path( &quot;path/to/file.txt&quot; );

assert( u.encoded_path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_query" id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2133"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which may contain percent-escapes and can be empty. An empty query is distinct from having no query. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_query( &quot;id=42&quot; ).encoded_query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == decode_view( s );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_user" id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="693"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo the the string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_encoded_user(&quot;john%20doe&quot;).userinfo() == &quot;john doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_userinfo" id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="543"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo.</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_encoded_userinfo( &quot;john%20doe&quot; ).user() == &quot;john doe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
              <text>, </text>
              <reference id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">set_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_encoded_zone_id" id="/HsDRNr5aHRIzBwkJqZnZrdNZ/k=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1412"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address (percent-encoded).</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Escapes in the string are preserved, and reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_encoded_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
          </doc>
        </function>
        <function name="set_fragment" id="VHh7zoCWGsviuG3lWYA54cKWneU=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2557"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the fragment.</text>
            </brief>
            <para>
              <text>This function sets the fragment to the specified string, which may be empty. An empty fragment is distinct from having no fragment. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;?first=john&amp;last=doe&quot; ).set_encoded_fragment( &quot;john doe&quot; ).encoded_fragment() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_fragment() == true &amp;&amp; this-&gt;fragment() == s</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment    = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5.  Fragment</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="aGhIz5PP9XtdztICzhAvM4n92Sg=">remove_fragment</reference>
              <text>, </text>
              <reference id="ebU9NPxh5c4VwDAaQA1CXRWbSKk=">set_encoded_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host" id="lhYybwvylnG/ieiGmyVfyExN3dw=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="942"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address</text>
                <text>        enclosed in square brackets, then the</text>
                <text>        host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture</text>
                <text>        address enclosed in square brackets, then</text>
                <text>        the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_address" id="ut25mVfVRShtv19Mg+nvS5jVATc=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1127"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>Depending on the contents of the passed string, this function sets the host:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the string is a valid IPv4 address,</text>
                <text>        then the host is set to the address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv4</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPv6 address,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipv6</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>If the string is a valid IPvFuture,</text>
                <text>        then the host is set to that address.</text>
                <text>        The host type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, the host name is set to</text>
                <text>        the string, which may be empty.</text>
                <text>        Reserved characters in the string are</text>
                <text>        percent-escaped in the result.</text>
                <text>        The host type is </text>
                <reference>host_type::name</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <para>
              <text>In all cases, when this function returns, the URL contains an authority.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_host_address( &quot;127.0.0.1&quot; ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255

IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal

IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv4" id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1288"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv4 address. The host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://www.example.com&quot;).set_host_ipv4( ipv4_address( &quot;127.0.0.1&quot; ) ).buffer() == &quot;http://127.0.0.1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv4_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv4</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipv6" id="BryTExdDEUoZs6riyC1Qi0/NtPE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1354"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="addr">
            <type class="lvalue-reference">
              <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPv6 address. The host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipv6( ipv6_address( &quot;1::6:c0a8:1&quot; ) ).authority().buffer() == &quot;[1::6:c0a8:1]&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::ipv6</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="addr">
              <text>The address to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_ipvfuture" id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1465"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to an address</text>
            </brief>
            <para>
              <text>The host is set to the specified IPvFuture string. The host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_host_ipvfuture( &quot;v42.bis&quot; ).buffer() == &quot;//[v42.bis]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipvfuture) == s &amp;&amp; this-&gt;host_type() == host_type::ipvfuture</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture     = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid percent-encoding.</text>
            </throws>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="Pt4icJRgJxULgQjbXV6yzBigNl8=">set_host_name</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_host_name" id="Pt4icJRgJxULgQjbXV6yzBigNl8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1513"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the host to a name</text>
            </brief>
            <para>
              <text>The host is set to the specified string, which may be empty. Reserved characters in the string are percent-escaped in the result. The host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com/index.htm&quot;).set_host_name( &quot;localhost&quot; ).host_address() == &quot;localhost&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;host_ipv6_address() == addr &amp;&amp; this-&gt;host_type() == host_type::name</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="OgEcjvMpUkw5cqqrotx6BNVfYuA=">set_encoded_host</reference>
              <text>, </text>
              <reference id="51fvhkKEd4+UZEBsnLd4vUL/Svw=">set_encoded_host_address</reference>
              <text>, </text>
              <reference id="Lz8KFSebh4YuJuAAf0STYQ/VPqk=">set_encoded_host_name</reference>
              <text>, </text>
              <reference id="lhYybwvylnG/ieiGmyVfyExN3dw=">set_host</reference>
              <text>, </text>
              <reference id="ut25mVfVRShtv19Mg+nvS5jVATc=">set_host_address</reference>
              <text>, </text>
              <reference id="Cn5GM3RJyUENDJ/d6LnYVW+gkA4=">set_host_ipv4</reference>
              <text>, </text>
              <reference id="BryTExdDEUoZs6riyC1Qi0/NtPE=">set_host_ipv6</reference>
              <text>, </text>
              <reference id="BQxPHhB2Uv0OyVbWf3e7/seXVX8=">set_host_ipvfuture</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_params" exception-spec="noexcept" id="6eTAKxxUVgfC1QD7w2yAukEvLs4=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2356"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="ps">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;param_view&gt;"/>
          </param>
          <param name="opts" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Set the query params</text>
            </brief>
            <para>
              <text>This sets the query params to the list of param_view, which can be empty.</text>
            </para>
            <para>
              <text>An empty list of params is distinct from having no params.</text>
            </para>
            <para>
              <text>Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_params( {&quot;id&quot;, &quot;42&quot;} ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4
            &gt;3.4.  Query (rfc3986)&lt;/a&gt;
        @li &lt;a href=">://en.wikipedia.org/wiki/Query_string&quot;            &gt;Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="ps">
              <text>The params to set.</text>
            </param>
            <param name="opts">
              <text>The options for encoding.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>, </text>
              <reference id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">set_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_password" id="blkDquwzHtk7o5mJf/hdeY15zWg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="747"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the password.</text>
            </brief>
            <para>
              <text>This function sets the password in the userinfo to the string. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url(&quot;http://user@example.com&quot;).set_password( &quot;pass&quot; ).encoded_userinfo() == &quot;user:pass&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_password() == true &amp;&amp; this-&gt;password() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set. This string may contain any characters, including nulls.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">set_user</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path" id="0VMn4mT6ruiabbTCXyOFe+JATBg=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1828"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the path.</text>
            </brief>
            <para>
              <text>This function sets the path to the string, which may be empty. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <para class="note">
              <text>The library may adjust the final result to ensure that no other parts of the URL are semantically affected.</text>
            </para>
            <para class="note">
              <text>This function does not encode &apos;/&apos; chars, which are unreserved for paths but reserved for path segments. If a path segment should include encoded &apos;/&apos;s to differentiate it from path separators, the functions </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text> or </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text> should be used instead.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;http://www.example.com&quot; );

u.set_path( &quot;path/to/file.txt&quot; );

assert( u.path() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="BHDHQef0k/8vd3QskLyTrsv7+DE=">set_path_absolute</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_path_absolute" id="BHDHQef0k/8vd3QskLyTrsv7+DE=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1761"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="absolute">
            <type name="bool"/>
          </param>
          <doc>
            <brief>
              <text>Set if the path is absolute</text>
            </brief>
            <para>
              <text>This function adjusts the path to make it absolute or not, depending on the parameter.</text>
            </para>
            <para class="note">
              <text>If an authority is present, the path is always absolute. In this case, the function has no effect.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url u( &quot;path/to/file.txt&quot; );
assert( u.set_path_absolute( true ) );
assert( u.buffer() == &quot;/path/to/file.txt&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;is_path_absolute() == true &amp;&amp; this-&gt;encoded_path().front() == &apos;/&apos;</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>true on success.</text>
            </returns>
            <param name="absolute">
              <text>If </text>
              <mono>true</mono>
              <text>, the path is made absolute.</text>
            </param>
            <see>
              <reference id="qeLAK8oZj7+xpHv7Pyh0yYASuqU=">encoded_segments</reference>
              <text>, </text>
              <reference id="coMz0KQ2BIuACsWbIRZ/6lTOmuk=">segments</reference>
              <text>, </text>
              <reference id="GQGd+Ne+D3eTy4fe+x1cpa5zefU=">set_encoded_path</reference>
              <text>, </text>
              <reference id="0VMn4mT6ruiabbTCXyOFe+JATBg=">set_path</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port" id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1657"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>This port is set to the string, which must contain only digits or be empty. An empty port string is distinct from having no port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port( &quot;8080&quot; ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n &amp;&amp; this-&gt;port() == std::to_string(n)</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The port string to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> does not contain a valid port.</text>
            </throws>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_port_number" id="4bptcCq14NmzqKQvnx54lE+28F0=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1613"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="n">
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </param>
          <doc>
            <brief>
              <text>Set the port</text>
            </brief>
            <para>
              <text>The port is set to the specified integer.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_port_number( 8080 ).authority().buffer() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_port() == true &amp;&amp; this-&gt;port_number() == n</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port          = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="n">
              <text>The port number to set.</text>
            </param>
            <see>
              <reference id="ADa0xIsiS8APEAdL3+s0LoNowA8=">remove_port</reference>
              <text>, </text>
              <reference id="p1q1Ba+a+naWvTDfBuMPt0DJw2A=">set_port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_query" id="99/QTSBQGLrNj3zGdw5VzYlqfnI=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2077"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the query</text>
            </brief>
            <para>
              <text>This sets the query to the string, which can be empty. An empty query is distinct from having no query. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_query( &quot;id=42&quot; ).query() == &quot;id=42&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_query() == true &amp;&amp; this-&gt;query() == s</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="tDMWbnBabN2mGSH3Apn445gDMEQ=">encoded_params</reference>
              <text>, </text>
              <reference id="wdcIrRY9aj9gn6bF1i59TpOAQb4=">params</reference>
              <text>, </text>
              <reference id="ZZWEzCK7DguUxc3TvUfizoGKplE=">remove_query</reference>
              <text>, </text>
              <reference id="QcQ13DUh8M8TR/zj/LDG3N/+i3c=">set_encoded_query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme" id="rKQfFZ6dfzeuSqZL+PgPNpIFQ5g=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="246"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>The scheme is set to the specified string, which must contain a valid scheme without any trailing colon (&apos;:&apos;). Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://www.example.com&quot; ).set_scheme( &quot;https&quot; ).scheme_id() == scheme::https );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme        = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The scheme to set.</text>
            </param>
            <throws>
              <mono>s</mono>
              <text> contains an invalid scheme.</text>
            </throws>
            <see>
              <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_scheme_id" id="iuTF0vS1Knzl0Hxr4iVhx35Fzdk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="281"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="id">
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </param>
          <doc>
            <brief>
              <text>Set the scheme</text>
            </brief>
            <para>
              <text>This function sets the scheme to the specified known </text>
              <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">urls::scheme</reference>
              <text> id, which may not be </text>
              <reference id="LJxTyQ55ot1WYLH7f46nZvdGU78=">scheme::unknown</reference>
              <text> or else an exception is thrown. If the id is </text>
              <reference id="VupiauVBXlZQ8Uix+vk8kSl+fM8=">scheme::none</reference>
              <text>, this function behaves as if </text>
              <reference id="1N2Tt1DokczwHdRgAZiZzhPQr4E=">remove_scheme</reference>
              <text> were called.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com/echo.cgi&quot; ).set_scheme_id( scheme::wss ).buffer() == &quot;wss://example.com/echo.cgi&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="id">
              <text>The scheme to set.</text>
            </param>
            <throws>
              <text>The scheme is invalid.</text>
            </throws>
          </doc>
        </function>
        <function name="set_user" id="GWy3y66sOX4ov+Eh3hxNRVsAEwY=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="636"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the user</text>
            </brief>
            <para>
              <text>This function sets the user part of the userinfo to the string. Any special or reserved characters in the string are automatically percent-encoded.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url().set_user(&quot;john doe&quot;).encoded_userinfo() == &quot;john%20doe&quot; );</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;has_authority() == true &amp;&amp; this-&gt;has_userinfo() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="M5RIQPf9vzlN+m4Qn0PDNFKy8ak=">remove_password</reference>
              <text>, </text>
              <reference id="qF7dDBIf4KkHxSuysLw1EJNSh2Y=">set_encoded_password</reference>
              <text>, </text>
              <reference id="YNLJGohUXCdL6mo1PM3ms9pRQyE=">set_encoded_user</reference>
              <text>, </text>
              <reference id="blkDquwzHtk7o5mJf/hdeY15zWg=">set_password</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_userinfo" id="s+5EFNaQxZ6HMzMRElE8AAODpm8=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="476"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the userinfo</text>
            </brief>
            <para>
              <text>The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (&apos;:&apos;) in the string:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If an unescaped colon exists, the</text>
                <text>        characters up to the colon become</text>
                <text>        the user and the rest of the characters</text>
                <text>        after the colon become the password.</text>
                <text>        In this case </text>
                <reference>has_password</reference>
                <text> returns        true. Otherwise,</text>
              </listitem>
              <listitem>
                <text>If there is no colon, the user is</text>
                <text>        set to the string. The function</text>
                <text>        </text>
                <reference>has_password</reference>
                <text> returns false.</text>
              </listitem>
            </unorderedlist>
            <para class="note">
              <text>The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url( &quot;http://example.com&quot; ).set_userinfo( &quot;user:pass&quot; ).encoded_user() == &quot;user&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size() + s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo      = [ [ user ] [ &apos;:&apos; password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The string to set.</text>
            </param>
            <see>
              <reference id="PjTTglJlJuEwKHuRXGByi7wW8W8=">remove_userinfo</reference>
              <text>, </text>
              <reference id="MLv0mdC6EhrEgdnFiOF+W8sw0/c=">set_encoded_userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="set_zone_id" id="eM5mUh7EZ/5wyXKQEoMXhHD+KJk=">
          <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="1381"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Set the zone ID for an IPv6 address.</text>
            </brief>
            <para>
              <text>This function sets the zone ID for the host if the host is an IPv6 address. Reserved characters in the string are percent-escaped in the result.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( u.set_host_ipv6( ipv6_address( &quot;fe80::1&quot; ) ).set_zone_id( &quot;eth0&quot; ).buffer() == &quot;https://[fe80::1%25eth0]&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee. Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">RFC 6874</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>*this</mono>
            </returns>
            <param name="s">
              <text>The zone ID to set.</text>
            </param>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the url</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the url.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <para class="note">
                <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text> for more information.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>When called with no arguments, a value of type </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
              </returns>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;encoded_zone_id().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the URL as a core::string_view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="mg8FRYZ94og9lKYjTEYdjucqHw4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are theoretically possible to represent in a url, not including any null terminator. In practice the actual possible size may be lower than this number.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters.</text>
            </returns>
          </doc>
        </function>
        <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="salt" default="0">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Calculate a hash of the url</text>
            </brief>
            <para>
              <text>This function calculates a hash of the url as if it were always normalized.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A hash value suitable for use in hash-based containers.</text>
            </returns>
            <param name="salt">
              <text>An initial value to add to the hash</text>
            </param>
          </doc>
        </function>
      </class>
      <class name="url_view" id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">
        <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="74" class="def"/>
        <file short-path="boost/url/detail/url_impl.hpp" source-path="include/boost/url/detail/url_impl.hpp" line="24"/>
        <base>
          <type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base"/>
        </base>
        <friend id="2+L1/+BrjUzoccWPIYkGu108y1I=">
          <befriended id="2+L1/+BrjUzoccWPIYkGu108y1I="/>
        </friend>
        <friend id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
          <befriended id="paRP7A1SOQlKcnfXhxL4FgbVXKs="/>
        </friend>
        <friend id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
          <befriended id="UEVNhDEjkZMXfjN1DxbtX0n2rCg="/>
        </friend>
        <friend>
          <befriended type="std::hash&lt;url_view&gt;"/>
        </friend>
        <doc>
          <brief>
            <text>A non-owning reference to a valid URL</text>
          </brief>
          <para>
            <text>Objects of this type represent valid URL strings constructed from a parsed, external character buffer whose storage is managed by the caller. That is, it acts like a </text>
            <mono>core::string_view</mono>
            <text> in terms of ownership. The caller is responsible for ensuring that the lifetime of the underlying character buffer extends until it is no longer referenced.</text>
          </para>
          <head>Example 1</head>
          <para>
            <text>Construction from a string parses the input as a </text>
            <italic>URI-reference</italic>
            <text> and throws an exception on error. Upon success, the constructed object points to the passed character buffer; ownership is not transferred.</text>
          </para>
          <code>
            <text>url_view u( &quot;https://www.example.com/index.htm?text=none#a1&quot; );</text>
          </code>
          <head>Example 2</head>
          <para>
            <text>Parsing functions like </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text> return a </text>
            <mono>boost::system::result</mono>
            <text> containing either a valid </text>
            <reference id="wg5mELA0xi9IYzWSOSuNwa4P1aw=">url_view</reference>
            <text> upon success, otherwise they contain an error. The error can be converted to an exception by the caller if desired:</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = parse_uri_reference( &quot;https://www.example.com/index.htm?text=none#a1&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>URI-reference = URI / relative-ref

URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>.</text>
          </see>
          <related>
            <reference id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">operator!=</reference>
            <reference id="Si07vh35lnvnJy8tpXUIpiFEjGM=">operator&lt;</reference>
            <reference id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">operator&lt;=</reference>
            <reference id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">operator==</reference>
            <reference id="ngGy21anUjaZiQQJidHT5lvOC2w=">operator&gt;</reference>
            <reference id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">operator&gt;=</reference>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <reference id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">resolve</reference>
          </related>
        </doc>
        <function class="constructor" name="url_view" exception-spec="noexcept" id="y8C4V/JzeMyHgT6jXQyeDSDijOU=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="146"/>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>Default constructed views refer to a string with zero length, which always remains valid. This matches the grammar for a relative-ref with an empty path and no query or fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u;</text>
            </code>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;empty() == true</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
          </doc>
        </function>
        <function class="constructor" name="url_view" exception-spec="noexcept" id="JLiDiNu2uu3W88aG1eQAtkdHqE4=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="241" class="def"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="wh3UbUToX9YDmRmnpcoM9EUEZo8=" name="url_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="url_view" id="JVsJtXdASd9pFyR6uj0leyapNx0=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="197"/>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>This function constructs a URL from the string </text>
              <mono>s</mono>
              <text>, which must contain a valid </text>
              <italic>URI</italic>
              <text> or </text>
              <italic>relative-ref</italic>
              <text> or else an exception is thrown. Upon successful construction, the view refers to the characters in the buffer pointed to by </text>
              <mono>s</mono>
              <text>. Ownership is not transferred; The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
            </para>
            <head>Example</head>
            <code>
              <text>url_view u( &quot;http://www.example.com/index.htm&quot; );</text>
            </code>
            <head>Effects</head>
            <code>
              <text>return parse_uri_reference( s ).value();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>s.size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Exceptions thrown on invalid input.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.1">4.1. URI Reference</link>
              </listitem>
            </unorderedlist>
            <param name="s">
              <text>The string to parse.</text>
            </param>
            <throws>
              <text>The input failed to parse correctly.</text>
            </throws>
            <see>
              <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function class="constructor" name="url_view" exception-spec="noexcept" id="o5hoWO59ZGzDtMtMdE6TmCsd4Xs=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="267"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Constructor</text>
            </brief>
            <para>
              <text>After construction, both views reference the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <template requires="std::is_convertible&lt;
                String,
                core::string_view
                    &gt;::value &amp;&amp;
            !std::is_convertible&lt;
                String*,
                url_view_base*
                    &gt;::value">
          <tparam name="String" class="type"/>
          <function class="constructor" name="url_view" id="BD2KyU57eYn46VC5vsT4glQD8rc=">
            <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="200" class="def"/>
            <param name="s">
              <type class="lvalue-reference">
                <pointee-type name="String" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <para>
                <text>This function constructs a URL from the string </text>
                <mono>s</mono>
                <text>, which must contain a valid </text>
                <italic>URI</italic>
                <text> or </text>
                <italic>relative-ref</italic>
                <text> or else an exception is thrown. Upon successful construction, the view refers to the characters in the buffer pointed to by </text>
                <mono>s</mono>
                <text>. Ownership is not transferred; The caller is responsible for ensuring that the lifetime of the buffer extends until it is no longer referenced.</text>
              </para>
              <head>Example</head>
              <code>
                <text>url_view u( &quot;http://www.example.com/index.htm&quot; );</text>
              </code>
              <head>Effects</head>
              <code>
                <text>return parse_uri_reference( s ).value();</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>s.size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Exceptions thrown on invalid input.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.1">4.1. URI Reference</link>
                </listitem>
              </unorderedlist>
              <param name="s">
                <text>The string to parse.</text>
              </param>
              <see>
                <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function class="destructor" name="~url_view" id="C2Z06VYQtT0f7SfP2ilcaOdS/FY=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="110" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <doc>
            <brief>
              <text>Destructor</text>
            </brief>
            <para>
              <text>Any params, segments, iterators, or other views which reference the same underlying character buffer remain valid.</text>
            </para>
          </doc>
        </function>
        <function name="operator=" exception-spec="noexcept" id="Leg4hLDDg+v+m5FMUnCxCsdZbHI=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="290" class="def"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="wh3UbUToX9YDmRmnpcoM9EUEZo8=" name="url_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="wh3UbUToX9YDmRmnpcoM9EUEZo8=" name="url_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="operator=" exception-spec="noexcept" id="/oYGu868uZxWMr7bWnu4SUbic7M=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="320"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="wh3UbUToX9YDmRmnpcoM9EUEZo8=" name="url_view"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Assignment</text>
            </brief>
            <para>
              <text>After assignment, both views reference the same underlying character buffer. Ownership is not transferred.</text>
            </para>
            <head>Postconditions</head>
            <code>
              <text>this-&gt;buffer().data() == other.buffer().data()</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A reference to this object.</text>
            </returns>
            <param name="other">
              <text>The other view.</text>
            </param>
          </doc>
        </function>
        <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
          <attr id="is-const"/>
          <return>
            <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority</text>
            </brief>
            <para>
              <text>This function returns the authority as an </text>
              <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>An authority_view representing the authority.</text>
            </returns>
            <see>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the url string</text>
            </brief>
            <para>
              <text>This function returns the entire url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The url as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another url</text>
            </brief>
            <para>
              <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>min( u0.size(), u1.size() )</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>-1 if </text>
              <mono>*this &lt; other</mono>
              <text>, 0 if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The url to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the url&apos;s character buffer</text>
            </brief>
            <para>
              <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the url is empty</text>
            </brief>
            <para>
              <text>The empty string matches the </text>
              <italic>relative-ref</italic>
              <text> grammar.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url is empty.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority.</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The authority as a string.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the fragment</text>
            </brief>
            <para>
              <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The fragment portion of the url.</text>
            </returns>
            <see>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>, </text>
              <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port portion of the url.</text>
            </returns>
            <see>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the origin</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The origin portion of the url.</text>
            </returns>
            <see>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2112"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path</text>
            </brief>
            <para>
              <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The path as a string.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query</text>
            </brief>
            <para>
              <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query as a string.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the resource</text>
            </brief>
            <para>
              <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The resource portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="xDk467Vs74WMTJdzZiv8izTuGQo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1874"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of encoded segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>, </text>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the target</text>
            </brief>
            <para>
              <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The target portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the IPv6 Zone ID</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The Zone ID as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
              </para>
              <para>
                <text>This function accepts an optional </text>
                <italic>StringToken</italic>
                <text> parameter which controls the return type and behavior of the function:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>When called with no arguments,</text>
                  <text>        the return type of the function is</text>
                  <text>        `std::string`. Otherwise</text>
                </listitem>
                <listitem>
                  <text>When called with a string token,</text>
                  <text>        the behavior and return type of the</text>
                  <text>        function depends on the type of string</text>
                  <text>        token being passed.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <param name="token">
                <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                <mono>std::string</mono>
                <text>.</text>
              </param>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if an authority is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains an authority.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a fragment is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a fragment.</text>
            </returns>
            <see>
              <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
              <text>, </text>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo contains a password.</text>
            </returns>
            <see>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a query is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a query is present.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true a scheme is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a scheme.</text>
            </returns>
            <see>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo is present.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv4 address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv6 address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPvFuture address as a string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
              <listitem>
                <reference>host_type::none</reference>
              </listitem>
            </unorderedlist>
            <para>
              <text>When </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text> is false, the host type is </text>
              <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The type of host present.</text>
            </returns>
          </doc>
        </function>
        <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the path is absolute</text>
            </brief>
            <para>
              <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="aUkcvLp4jz3VpXI6WKSgga7G2XE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2066"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;path().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <param name="token">
                <text>A string token to use for the result.</text>
              </param>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
          <attr id="is-const"/>
          <return>
            <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Return a shared, persistent copy of the url</text>
            </brief>
            <para>
              <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
            </para>
            <head>Example</head>
            <code>
              <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A shared pointer to a read-only url_view.</text>
            </returns>
          </doc>
        </function>
        <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number as an unsigned integer.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <param name="token">
                <text>A token to use for the returned string.</text>
              </param>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as a string.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
          <attr id="is-const"/>
          <return>
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns a value which depends on the scheme in the url:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the scheme is a well-known</text>
                <text>        scheme, corresponding value from</text>
                <text>        the enumeration </text>
                <reference>urls::scheme</reference>
                <text>        is returned.</text>
              </listitem>
              <listitem>
                <text>If a scheme is present but is not</text>
                <text>        a well-known scheme, the value</text>
                <text>        returned is </text>
                <reference>urls::scheme::unknown</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, if the scheme is absent</text>
                <text>        the value returned is</text>
                <text>        </text>
                <reference>urls::scheme::none</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as an enumeration value.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="txoybJuonJpAdGVWgiAsiI45+ok=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1823"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the url</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the url.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <para class="note">
                <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text> for more information.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>When called with no arguments, a value of type </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
              </returns>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;encoded_zone_id().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the URL as a core::string_view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="QnJpEPJCfRKAJAc/hcKWdTwH9qM=">
          <file short-path="boost/url/url_view.hpp" source-path="include/boost/url/url_view.hpp" line="343" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are possible in a url, not including any null terminator.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters possible.</text>
            </returns>
          </doc>
        </function>
        <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="salt" default="0">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Calculate a hash of the url</text>
            </brief>
            <para>
              <text>This function calculates a hash of the url as if it were always normalized.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A hash value suitable for use in hash-based containers.</text>
            </returns>
            <param name="salt">
              <text>An initial value to add to the hash</text>
            </param>
          </doc>
        </function>
      </class>
      <class name="url_view_base" id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="65" class="def"/>
        <friend id="zokg5jecSwQDec3+skioIsjq7HA=">
          <befriended id="zokg5jecSwQDec3+skioIsjq7HA="/>
        </friend>
        <friend id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">
          <befriended id="AdXFp/RvPKHF4rljfa5/5yBmyfs="/>
        </friend>
        <friend id="ngGy21anUjaZiQQJidHT5lvOC2w=">
          <befriended id="ngGy21anUjaZiQQJidHT5lvOC2w="/>
        </friend>
        <friend id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">
          <befriended id="rRCHC/6GEaVZrjzAeFDlvaCydi0="/>
        </friend>
        <friend id="Si07vh35lnvnJy8tpXUIpiFEjGM=">
          <befriended id="Si07vh35lnvnJy8tpXUIpiFEjGM="/>
        </friend>
        <friend id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">
          <befriended id="QA2q/R+XvrJl2j8UnJwv+lnhdDA="/>
        </friend>
        <friend id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">
          <befriended id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE="/>
        </friend>
        <friend id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">
          <befriended id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA="/>
        </friend>
        <friend id="zdr3gU7+2/G05oo6ta/IfHlkTF0=">
          <befriended id="zdr3gU7+2/G05oo6ta/IfHlkTF0="/>
        </friend>
        <friend id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">
          <befriended id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ="/>
        </friend>
        <friend id="TCUUfRiqZjX62kt7tK2fs//VWr0=">
          <befriended id="TCUUfRiqZjX62kt7tK2fs//VWr0="/>
        </friend>
        <friend id="qs4TNMM406MPgeboXz6oVUmcauE=">
          <befriended id="qs4TNMM406MPgeboXz6oVUmcauE="/>
        </friend>
        <friend id="ge9cOBTN19ywbVTnB5ajdJUC46Q=">
          <befriended id="ge9cOBTN19ywbVTnB5ajdJUC46Q="/>
        </friend>
        <friend id="DzqMpaJX2O25vPFxEN5EDTyU6uw=">
          <befriended id="DzqMpaJX2O25vPFxEN5EDTyU6uw="/>
        </friend>
        <friend id="8S83BKvWBCDdTktlY8X93Mlo9E0=">
          <befriended id="8S83BKvWBCDdTktlY8X93Mlo9E0="/>
        </friend>
        <friend id="0nSfM4mK92fIx58KtzdWGiHuq2w=">
          <befriended id="0nSfM4mK92fIx58KtzdWGiHuq2w="/>
        </friend>
        <friend id="oR5B5D0/JYTOQYvyFXRv+at91JE=">
          <befriended id="oR5B5D0/JYTOQYvyFXRv+at91JE="/>
        </friend>
        <friend id="2+L1/+BrjUzoccWPIYkGu108y1I=">
          <befriended id="2+L1/+BrjUzoccWPIYkGu108y1I="/>
        </friend>
        <friend id="paRP7A1SOQlKcnfXhxL4FgbVXKs=">
          <befriended id="paRP7A1SOQlKcnfXhxL4FgbVXKs="/>
        </friend>
        <friend id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">
          <befriended id="dmsqdje8dXFRFgNB9wxOs9Y5nb8="/>
        </friend>
        <friend id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">
          <befriended id="wh3UbUToX9YDmRmnpcoM9EUEZo8="/>
        </friend>
        <friend id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">
          <befriended id="aHkFCWJbYb0t+7FT+A5gCI0krpU="/>
        </friend>
        <friend id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">
          <befriended id="B4dRaSXMG3fDmuNKMW3KOeRu6kA="/>
        </friend>
        <doc>
          <brief>
            <text>Common functionality for containers</text>
          </brief>
          <para>
            <text>This base class is used by the library to provide common member functions for containers. This cannot be instantiated directly; Instead, use one of the containers or functions:</text>
          </para>
          <head>Containers</head>
          <unorderedlist>
            <listitem>
              <reference>url</reference>
            </listitem>
            <listitem>
              <reference>url_view</reference>
            </listitem>
            <listitem>
              <reference>static_url</reference>
            </listitem>
          </unorderedlist>
          <head>Functions</head>
          <unorderedlist>
            <listitem>
              <reference>parse_absolute_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_origin_form</reference>
            </listitem>
            <listitem>
              <reference>parse_relative_ref</reference>
            </listitem>
            <listitem>
              <reference>parse_uri</reference>
            </listitem>
            <listitem>
              <reference>parse_uri_reference</reference>
            </listitem>
          </unorderedlist>
          <related>
            <reference id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">resolve</reference>
          </related>
        </doc>
        <function name="authority" exception-spec="noexcept" id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="547"/>
          <attr id="is-const"/>
          <return>
            <type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority</text>
            </brief>
            <para>
              <text>This function returns the authority as an </text>
              <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>authority_view a = url_view( &quot;https://www.example.com:8080/index.htm&quot; ).authority();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>An authority_view representing the authority.</text>
            </returns>
            <see>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="buffer" exception-spec="noexcept" id="oDNnPxjP34HYhoUyyduWMZfqZs4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="265" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the url string</text>
            </brief>
            <para>
              <text>This function returns the entire url, which may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).buffer() == &quot;http://www.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The url as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="compare" exception-spec="noexcept" id="p+2L2asXUGpE7eey1ouRvFXKD1g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2428"/>
          <attr id="is-const"/>
          <return>
            <type name="int"/>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return the result of comparing this with another url</text>
            </brief>
            <para>
              <text>This function compares two URLs according to Syntax-Based comparison algorithm.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>min( u0.size(), u1.size() )</mono>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>-1 if </text>
              <mono>*this &lt; other</mono>
              <text>, 0 if </text>
              <mono>this == other</mono>
              <text>, and 1 if </text>
              <mono>this &gt; other</mono>
              <text>.</text>
            </returns>
            <param name="other">
              <text>The url to compare</text>
            </param>
          </doc>
        </function>
        <function name="data" exception-spec="noexcept" id="I2WjK21z+iS45kbL4TnzA8O5oE0=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="241" class="def"/>
          <attr id="is-const"/>
          <return>
            <type class="pointer">
              <pointee-type name="char" cv-qualifiers="const"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Return a pointer to the url&apos;s character buffer</text>
            </brief>
            <para>
              <text>This function returns a pointer to the first character of the url, which is not guaranteed to be null-terminated.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A pointer to the first character.</text>
            </returns>
          </doc>
        </function>
        <function name="empty" exception-spec="noexcept" id="5yR7btLz2K+NLHFnzfXMyGsq2fo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="221" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the url is empty</text>
            </brief>
            <para>
              <text>The empty string matches the </text>
              <italic>relative-ref</italic>
              <text> grammar.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;&quot; ).empty() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-empty</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2.  Relative Reference (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url is empty.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_authority" exception-spec="noexcept" id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="584"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the authority.</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the authority (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file://Network%20Drive/My%2DFiles&quot; ).encoded_authority() == &quot;Network%20Drive&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The authority as a string.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_fragment" exception-spec="noexcept" id="M7+OzewsxChMvecRSytXqTCqKrY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2262"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the fragment</text>
            </brief>
            <para>
              <text>This function returns the fragment as a string with percent-escapes. Ownership is not transferred; the string returned references the underlying character buffer, which must remain valid or else undefined behavior occurs.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).encoded_fragment() == &quot;a%2D1&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

pchar           = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The fragment portion of the url.</text>
            </returns>
            <see>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>, </text>
              <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host" exception-spec="noexcept" id="EcGxt+esOtVfjloInubXUYLy5GY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1103"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_address" exception-spec="noexcept" id="yXsUZRbi+wInLqaUUVy9b7nIIBo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1220"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host</text>
            </brief>
            <para>
              <text>The value returned by this function depends on the type of host returned from the function </text>
              <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
              <text>.</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv4</reference>
                <text>,        then the IPv4 address string is returned.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipv6</reference>
                <text>,        then the IPv6 address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::ipvfuture</reference>
                <text>,        then the IPvFuture address string is returned,</text>
                <text>        without any enclosing brackets.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::name</reference>
                <text>,        then the host name string is returned.</text>
                <text>        Any percent-escapes in the string are</text>
                <text>        decoded first.</text>
              </listitem>
              <listitem>
                <text>If the type is </text>
                <reference>host_type::none</reference>
                <text>,        then an empty string is returned.</text>
                <text>        The returned string may contain</text>
                <text>        percent escapes.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_address() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host address as a string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_host_and_port" exception-spec="noexcept" id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2307"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host and port</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the host and optional port as a string, which may be empty. Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm&quot; ).encoded_host_and_port() == &quot;www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2.  Host (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host and port portion of the url.</text>
            </returns>
            <see>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_host_name" exception-spec="noexcept" id="4URKnuP+gvIUVjIkywv/pXeFjv4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1424"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host name</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
              <text>, this function returns the name as a string. Otherwise, if the host type is not an name, it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).encoded_host_name() == &quot;www%2droot.example.com&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The host name as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <function name="encoded_origin" exception-spec="noexcept" id="wG6ey1727HIj10Wh+OD/s8kuOjo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2337"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the origin</text>
            </brief>
            <para>
              <text>If an authority is present, this function returns the scheme and authority portion of the url. Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com:8080/index.htm?text=none#h1&quot; ).encoded_origin() == &quot;http://www.example.com:8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The origin portion of the url.</text>
            </returns>
            <see>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_params" exception-spec="noexcept" id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2112"/>
          <attr id="is-const"/>
          <return>
            <type id="0nSfM4mK92fIx58KtzdWGiHuq2w=" name="params_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_encoded_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )
query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_password" exception-spec="noexcept" id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="979"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the password</text>
            </brief>
            <para>
              <text>This function returns the password portion of the userinfo as a percent-encoded string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_password() == &quot;pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The password as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_path" exception-spec="noexcept" id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1782"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path</text>
            </brief>
            <para>
              <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).encoded_path() == &quot;/Program%20Files/Games/config.ini&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The path as a string.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_query" exception-spec="noexcept" id="suU4/MiRITTTYf61BFw2aI6WxdI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2022"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query</text>
            </brief>
            <para>
              <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).encoded_query() == &quot;id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The query as a string.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_resource" exception-spec="noexcept" id="yLMNPjiW4s31xcLN4xOiqVySYLA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2369"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the resource</text>
            </brief>
            <para>
              <text>This function returns the resource, which is the portion of the url that includes only the path, query, and fragment. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_resource() == &quot;/index.html?query#frag&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The resource portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="IcodRek43l5Zc13Z67L74PlhG0U=">encoded_target</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_segments" exception-spec="noexcept" id="xDk467Vs74WMTJdzZiv8izTuGQo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1874"/>
          <attr id="is-const"/>
          <return>
            <type id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=" name="segments_encoded_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Strings returned when iterating the range may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_encoded_view sv = url_view( &quot;/path/to/file.txt&quot; ).encoded_segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of encoded segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>, </text>
              <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_target" exception-spec="noexcept" id="IcodRek43l5Zc13Z67L74PlhG0U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2401"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the target</text>
            </brief>
            <para>
              <text>This function returns the target, which is the portion of the url that includes only the path and query. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.html?query#frag&quot; ).encoded_target() == &quot;/index.html?query&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The target portion of the url.</text>
            </returns>
            <see>
              <reference id="wG6ey1727HIj10Wh+OD/s8kuOjo=">encoded_origin</reference>
              <text>, </text>
              <reference id="yLMNPjiW4s31xcLN4xOiqVySYLA=">encoded_resource</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_user" exception-spec="noexcept" id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="884"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the user</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_user() == &quot;jane%2Ddoe&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The user as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_userinfo" exception-spec="noexcept" id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="783"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the userinfo</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).encoded_userinfo() == &quot;jane%2Ddoe:pass&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The userinfo as a string.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="encoded_zone_id" exception-spec="noexcept" id="5M2smbXDaSa2d/li//A+GmlDgDU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1509"/>
          <attr id="is-const"/>
          <return>
            <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the IPv6 Zone ID</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. The returned string may contain percent escapes.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).encoded_zone_id() == &quot;eth0&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The Zone ID as a percent-encoded string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="fragment" id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2215" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the fragment</text>
              </brief>
              <para>
                <text>This function calculates the fragment of the url, with percent escapes decoded and without the leading pound sign (&apos;#&apos;) whose presence indicates that the url contains a fragment.</text>
              </para>
              <para>
                <text>This function accepts an optional </text>
                <italic>StringToken</italic>
                <text> parameter which controls the return type and behavior of the function:</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>When called with no arguments,</text>
                  <text>        the return type of the function is</text>
                  <text>        `std::string`. Otherwise</text>
                </listitem>
                <listitem>
                  <text>When called with a string token,</text>
                  <text>        the behavior and return type of the</text>
                  <text>        function depends on the type of string</text>
                  <text>        token being passed.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://www.example.com/index.htm#a%2D1&quot; ).fragment() == &quot;a-1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;fragment().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw. String tokens may throw exceptions.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>fragment        = *( pchar / &quot;/&quot; / &quot;?&quot; )

fragment-part   = [ &quot;#&quot; fragment ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The fragment portion of the url.</text>
              </returns>
              <param name="token">
                <text>An optional string token to use. If this parameter is omitted, the function returns a new </text>
                <mono>std::string</mono>
                <text>.</text>
              </param>
              <see>
                <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
                <text>, </text>
                <reference id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">has_fragment</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="has_authority" exception-spec="noexcept" id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="511" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if an authority is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains an authority. The presence of an authority is denoted by a double slash (&quot;//&quot;) at the beginning or after the scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm&quot; ).has_authority() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority       = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

URI-reference   = URI / relative-ref

relative-ref    = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part       = &quot;//&quot; authority path-abempty
                ; (more...)

relative-part   = &quot;//&quot; authority path-abempty
                ; (more...)

</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains an authority.</text>
            </returns>
            <see>
              <reference id="v5/R9LI0iKJDiBrNUt7k8qrVBdM=">authority</reference>
              <text>, </text>
              <reference id="Ww04vLA2k7BwctuyNeP3KwoNr4M=">encoded_authority</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_fragment" exception-spec="noexcept" id="ZiWsQaQCAif94KdP6GXH9+F5GmM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2155"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a fragment is present</text>
            </brief>
            <para>
              <text>This function returns true if the url contains a fragment. An empty fragment is distinct from no fragment.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com/index.htm#anchor&quot; ).has_fragment() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5">3.5. Fragment (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a fragment.</text>
            </returns>
            <see>
              <reference id="M7+OzewsxChMvecRSytXqTCqKrY=">encoded_fragment</reference>
              <text>, </text>
              <reference id="aA1Q9NAW4/TnG3SXhe4k1mNB5nk=">fragment</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_password" exception-spec="noexcept" id="9JACnsebk8tFsoryabfDxE8VpnA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="672"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a password is present</text>
            </brief>
            <para>
              <text>This function returns true if the userinfo is present and contains a password.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_password() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo contains a password.</text>
            </returns>
            <see>
              <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_port" exception-spec="noexcept" id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1551"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a port is present</text>
            </brief>
            <para>
              <text>This function returns true if an authority is present and contains a port.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com:443&quot; ).has_port() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a port is present, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_query" exception-spec="noexcept" id="SLiWca6gUGmTh+r/BbU40NrICW8=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1920"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a query is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a query. An empty query is distinct from having no query.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/sql?id=42&amp;col=name&amp;page-size=20&quot; ).has_query() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if a query is present.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_scheme" exception-spec="noexcept" id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="367"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true a scheme is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a scheme.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).has_scheme() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the url contains a scheme.</text>
            </returns>
            <see>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="has_userinfo" exception-spec="noexcept" id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="630"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if a userinfo is present</text>
            </brief>
            <para>
              <text>This function returns true if this contains a userinfo.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).has_userinfo() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the userinfo is present.</text>
            </returns>
            <see>
              <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
              <text>, </text>
              <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
              <text>, </text>
              <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
              <text>, </text>
              <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
              <text>, </text>
              <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
              <text>, </text>
              <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
              <text>, </text>
              <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host" id="ICcovOIyqnxhSMU6MuEekYg2z+E=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1059" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>This function returns the host portion of the authority as a string, or the empty string if there is no authority. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_address" id="F0RYzLwUP8ied6l3zmKvomgFHag=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1157" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host</text>
              </brief>
              <para>
                <text>The value returned by this function depends on the type of host returned from the function </text>
                <reference id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">host_type</reference>
                <text>.</text>
              </para>
              <unorderedlist>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv4</reference>
                  <text>,        then the IPv4 address string is returned.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipv6</reference>
                  <text>,        then the IPv6 address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::ipvfuture</reference>
                  <text>,        then the IPvFuture address string is returned,</text>
                  <text>        without any enclosing brackets.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::name</reference>
                  <text>,        then the host name string is returned.</text>
                  <text>        Any percent-escapes in the string are</text>
                  <text>        decoded first.</text>
                </listitem>
                <listitem>
                  <text>If the type is </text>
                  <reference>host_type::none</reference>
                  <text>,        then an empty string is returned.</text>
                </listitem>
              </unorderedlist>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://[1::6:c0a8:1]/&quot; ).host_address() == &quot;1::6:c0a8:1&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_address().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host address as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_ipv4_address" exception-spec="noexcept" id="KL8F3KYxyzpC1e6fqoJy3B8IHhw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1260"/>
          <attr id="is-const"/>
          <return>
            <type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv4 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="49F64dAiji9HVbP6MxLQiqot7AY=">host_type::ipv4</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>. Otherwise, if the host type is not an IPv4 address, it returns a default-constructed value which is equal to the unspecified address &quot;0.0.0.0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://127.0.0.1/index.htm?user=win95&quot; ).host_ipv4_address() == ipv4_address( &quot;127.0.0.1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv4 address as a value of type </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipv6_address" exception-spec="noexcept" id="CvoRh2IpWg4QixngVwDjSKoeQVY=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1308"/>
          <attr id="is-const"/>
          <return>
            <type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPv6 address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
              <text>, this function returns the address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>. Otherwise, if the host type is not an IPv6 address, it returns a default-constructed value which is equal to the unspecified address &quot;0:0:0:0:0:0:0:0&quot;.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;ftp://[::1]/&quot; ).host_ipv6_address() == ipv6_address( &quot;::1&quot; ) );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPv6 address as a value of type </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </returns>
          </doc>
        </function>
        <function name="host_ipvfuture" exception-spec="noexcept" id="55Yh68uToEiKy+IDTpyctuK/T3g=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1341"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the host IPvFuture address</text>
            </brief>
            <para>
              <text>If the host type is </text>
              <reference id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">host_type::ipvfuture</reference>
              <text>, this function returns the address as a string. Otherwise, if the host type is not an IPvFuture address, it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://[v1fe.d:9]/index.htm&quot; ).host_ipvfuture() == &quot;v1fe.d:9&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>IPvFuture  = &quot;v&quot; 1*HEXDIG &quot;.&quot; 1*( unreserved / sub-delims / &quot;:&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The IPvFuture address as a string.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="host_name" id="AhPhrC4hmBsZgd/ztqbkAuOkbBM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1378" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the host name</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">host_type::name</reference>
                <text>, this function returns the name as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;https://www%2droot.example.com/&quot; ).host_name() == &quot;www-root.example.com&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;host_name().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal  = &quot;[&quot; ( IPv6address / IPvFuture  ) &quot;]&quot;

reg-name    = *( unreserved / pct-encoded / &quot;-&quot; / &quot;.&quot;)</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The host name as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="host_type" exception-spec="noexcept" id="Nv9Emy6spILLI/mqyIz2uRNBJhU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1019" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="YLHFVyAYZGSFQe18DPGjn6XsAMs=" name="urls::host_type"/>
          </return>
          <doc>
            <brief>
              <text>Return the host type</text>
            </brief>
            <para>
              <text>This function returns one of the following constants representing the type of host present.</text>
            </para>
            <unorderedlist>
              <listitem>
                <reference>host_type::ipv4</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipv6</reference>
              </listitem>
              <listitem>
                <reference>host_type::ipvfuture</reference>
              </listitem>
              <listitem>
                <reference>host_type::name</reference>
              </listitem>
              <listitem>
                <reference>host_type::none</reference>
              </listitem>
            </unorderedlist>
            <para>
              <text>When </text>
              <reference id="gadV3YsYDjlGX+64Rtiz4S+QD4A=">has_authority</reference>
              <text> is false, the host type is </text>
              <reference id="QyoMTu07h232/Sxqovu2mGoPgTo=">host_type::none</reference>
              <text>.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;https://192.168.0.1/local.htm&quot; ).host_type() == host_type::ipv4 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The type of host present.</text>
            </returns>
          </doc>
        </function>
        <function name="is_path_absolute" exception-spec="noexcept" id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1674" class="def"/>
          <attr id="is-const"/>
          <return>
            <type name="bool"/>
          </return>
          <doc>
            <brief>
              <text>Return true if the path is absolute</text>
            </brief>
            <para>
              <text>This function returns true if the path begins with a forward slash (&apos;/&apos;).</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;/path/to/file.txt&quot; ).is_path_absolute() );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <mono>true</mono>
              <text> if the path is absolute, </text>
              <mono>false</mono>
              <text> otherwise.</text>
            </returns>
            <see>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="aUkcvLp4jz3VpXI6WKSgga7G2XE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2066"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the query as a container of parameters</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of key/value pairs over the query. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>params_view pv = url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).params();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
              </listitem>
              <listitem>
                <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of key/value pairs.</text>
            </returns>
            <see>
              <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
              <text>, </text>
              <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
              <text>, </text>
              <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
              <text>, </text>
              <reference id="4epyMikskiBx2Gu+S87oAhrM/ZY=">query</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="params" exception-spec="noexcept" id="V3u1IzKjTvUUsoIglN4qUAzgD4k=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2069"/>
          <attr id="is-const"/>
          <return>
            <type id="DzqMpaJX2O25vPFxEN5EDTyU6uw=" name="params_view"/>
          </return>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="password" id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="930" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the password</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the password (which may be an empty string). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).password() == &quot;pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;password().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The password as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="path" id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1727" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the path</text>
              </brief>
              <para>
                <text>This function returns the path as a string. The path may be empty. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;file:///Program%20Files/Games/config.ini&quot; ).path() == &quot;/Program Files/Games/config.ini&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;path().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>path          = path-abempty    ; begins with &quot;/&quot; or is empty
              / path-absolute   ; begins with &quot;/&quot; but not &quot;//&quot;
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( &quot;/&quot; segment )
path-absolute = &quot;/&quot; [ segment-nz *( &quot;/&quot; segment ) ]
path-noscheme = segment-nz-nc *( &quot;/&quot; segment )
path-rootless = segment-nz *( &quot;/&quot; segment )
path-empty    = 0&lt;pchar&gt;</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The path as a string.</text>
              </returns>
              <param name="token">
                <text>A string token to use for the result.</text>
              </param>
              <see>
                <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
                <text>, </text>
                <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
                <text>, </text>
                <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
                <text>. </text>
                <reference id="txoybJuonJpAdGVWgiAsiI45+ok=">segments</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="persist" id="cRPG1npIXmfYC0K+C+idxOqIc04=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="324"/>
          <attr id="is-const"/>
          <return>
            <type id="Z/7vJCCzHsNusyigUHSxduYuAl8=" name="std::shared_ptr&lt;const url_view&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Return a shared, persistent copy of the url</text>
            </brief>
            <para>
              <text>This function returns a read-only copy of the url, with shared lifetime. The returned value owns (persists) the underlying string. The algorithm used to create the value minimizes the number of individual memory allocations, making it more efficient than when using direct standard library functions.</text>
            </para>
            <head>Example</head>
            <code>
              <text>std::shared_ptr&lt; url_view const &gt; sp;
{
    std::string s( &quot;http://example.com&quot; );
    url_view u( s );                        // u references characters in s

    assert( u.data() == s.data() );         // same buffer

    sp = u.persist();

    assert( sp-&gt;data() != s.data() );       // different buffer
    assert( sp-&gt;buffer() == s);             // same contents

    // s is destroyed and thus u
    // becomes invalid, but sp remains valid.
}</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <returns>
              <text>A shared pointer to a read-only url_view.</text>
            </returns>
          </doc>
        </function>
        <function name="port" exception-spec="noexcept" id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1587"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If present, this function returns a string representing the port (which may be empty). Otherwise it returns an empty string.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port() == &quot;8080&quot; );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port as a string.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">port_number</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="port_number" exception-spec="noexcept" id="lctXu8FITJWg0+Y+yZVt5iv7QDM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1623"/>
          <attr id="is-const"/>
          <return>
            <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the port</text>
            </brief>
            <para>
              <text>If a port is present and the numerical value is representable, it is returned as an unsigned integer. Otherwise, the number zero is returned.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://localhost.com:8080&quot; ).port_number() == 8080 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>port        = *DIGIT</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3">3.2.3. Port (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The port number as an unsigned integer.</text>
            </returns>
            <see>
              <reference id="9ptIMbwWSNtVv+KAUpHCO3bmTWg=">encoded_host_and_port</reference>
              <text>, </text>
              <reference id="5V5uOhRsy00O+TSEAkIb7uFoN2U=">has_port</reference>
              <text>, </text>
              <reference id="OlWcRIIUl1cq5Ab9fLXGPyhYCfI=">port</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="query" id="4epyMikskiBx2Gu+S87oAhrM/ZY=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1969" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the query</text>
              </brief>
              <para>
                <text>If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first. When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;/sql?id=42&amp;name=jane%2Ddoe&amp;page+size=20&quot; ).query() == &quot;id=42&amp;name=jane-doe&amp;page size=20&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;query().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-param     = key [ &quot;=&quot; value ]
query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4.  Query (rfc3986)</link>
                </listitem>
                <listitem>
                  <link href="https://en.wikipedia.org/wiki/Query_string">Query string (Wikipedia)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The query as a string.</text>
              </returns>
              <param name="token">
                <text>A token to use for the returned string.</text>
              </param>
              <see>
                <reference id="YdRpQ6mNNA/rw8PqzTxP08VgNnY=">encoded_params</reference>
                <text>, </text>
                <reference id="suU4/MiRITTTYf61BFw2aI6WxdI=">encoded_query</reference>
                <text>, </text>
                <reference id="SLiWca6gUGmTh+r/BbU40NrICW8=">has_query</reference>
                <text>, </text>
                <reference id="ZdlRIJ+RVbaF05I+w1pfQzUA0/0=">params</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <function name="scheme" exception-spec="noexcept" id="43fxogaC5oVqfauhwXyN4s4ibEM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="404"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns the scheme if it exists, without a trailing colon (&apos;:&apos;). Otherwise it returns an empty string. Note that schemes are case-insensitive, and the canonical form is lowercased.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;http://www.example.com&quot; ).scheme() == &quot;http&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )

URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as a string.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="uM37WpBqetqzfHjns3M8/+CcoEU=">scheme_id</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="scheme_id" exception-spec="noexcept" id="uM37WpBqetqzfHjns3M8/+CcoEU=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="454"/>
          <attr id="is-const"/>
          <return>
            <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="urls::scheme"/>
          </return>
          <doc>
            <brief>
              <text>Return the scheme</text>
            </brief>
            <para>
              <text>This function returns a value which depends on the scheme in the url:</text>
            </para>
            <unorderedlist>
              <listitem>
                <text>If the scheme is a well-known</text>
                <text>        scheme, corresponding value from</text>
                <text>        the enumeration </text>
                <reference>urls::scheme</reference>
                <text>        is returned.</text>
              </listitem>
              <listitem>
                <text>If a scheme is present but is not</text>
                <text>        a well-known scheme, the value</text>
                <text>        returned is </text>
                <reference>urls::scheme::unknown</reference>
                <text>.</text>
              </listitem>
              <listitem>
                <text>Otherwise, if the scheme is absent</text>
                <text>        the value returned is</text>
                <text>        </text>
                <reference>urls::scheme::none</reference>
                <text>.</text>
              </listitem>
            </unorderedlist>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;wss://www.example.com/crypto.cgi&quot; ).scheme_id() == scheme::wss );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>URI             = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

scheme          = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The scheme as an enumeration value.</text>
            </returns>
            <see>
              <reference id="iwSH2fvVkb89TkZj7KWLGSyc4sA=">has_scheme</reference>
              <text>, </text>
              <reference id="43fxogaC5oVqfauhwXyN4s4ibEM=">scheme</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="segments" exception-spec="noexcept" id="txoybJuonJpAdGVWgiAsiI45+ok=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1823"/>
          <attr id="is-const"/>
          <return>
            <type id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=" name="segments_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the path as a container of segments</text>
            </brief>
            <para>
              <text>This function returns a bidirectional view of strings over the path. The returned view references the same underlying character buffer; ownership is not transferred. Any percent-escapes in strings returned when iterating the view are decoded first.</text>
            </para>
            <head>Example</head>
            <code>
              <text>segments_view sv = url_view( &quot;/path/to/file.txt&quot; ).segments();</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A bidirectional view of segments.</text>
            </returns>
            <see>
              <reference id="eh5BeHbLjL3BuEY7ao3tbEAZnTw=">is_path_absolute</reference>
              <text>, </text>
              <reference id="GNlqbV0MSxGIA/gSjlOb2rfSHhU=">encoded_path</reference>
              <text>, </text>
              <reference id="xDk467Vs74WMTJdzZiv8izTuGQo=">encoded_segments</reference>
              <text>. </text>
              <reference id="Q5NVO+d/+BmZ5v3/ogNb2XpUTKs=">path</reference>
              <text>, </text>
              <reference id="ZNJOLZ4RhCB2A2ooiNo7KxZJHrA=">segments_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
        <function name="size" exception-spec="noexcept" id="b5EwiMBFGrk0/BIGaiumuCVSoFM=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="184" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the number of characters in the url</text>
            </brief>
            <para>
              <text>This function returns the number of characters in the url&apos;s encoded string, not including any null terminator, if present.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( url_view( &quot;file:///Program%20Files&quot; ).size() == 23 );</text>
            </code>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The number of characters in the url.</text>
            </returns>
          </doc>
        </function>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="user" id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="831" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the user</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).user() == &quot;jane-doe&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;user().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

user        = *( unreserved / pct-encoded / sub-delims )
password    = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The user as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">userinfo</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="userinfo" id="S9yd7MVhXxF+598Xy2/+jwnCZzc=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="731" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the userinfo</text>
              </brief>
              <para>
                <text>If present, this function returns a string representing the userinfo (which may be empty). Otherwise it returns an empty string. Any percent-escapes in the string are decoded first.</text>
              </para>
              <para class="note">
                <text>This function uses the string token return type customization. Depending on the token passed, the return type and behavior of the function can be different. See </text>
                <reference id="+eBzDECNPyuTkJuxLUTMVIkHGO0=">string_token::return_string</reference>
                <text> for more information.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://jane%2Ddoe:pass@example.com&quot; ).userinfo() == &quot;jane-doe:pass&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;userinfo().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>userinfo    = user [ &quot;:&quot; [ password ] ]

authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1">3.2.1. User Information (rfc3986)</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>When called with no arguments, a value of type </text>
                <mono>std::string</mono>
                <text> is returned. Otherwise, the return type and meaning depends on the string token passed to the function.</text>
              </returns>
              <returns>
                <text>The userinfo as a string.</text>
              </returns>
              <param name="token">
                <text>The string token to use.</text>
              </param>
              <see>
                <reference id="9JACnsebk8tFsoryabfDxE8VpnA=">has_password</reference>
                <text>, </text>
                <reference id="i/v5Vfq44OnlLbuKgQ2KvgWgZqo=">has_userinfo</reference>
                <text>, </text>
                <reference id="W9oZv0BM5z4XAggQPbNAKIM7/ro=">encoded_password</reference>
                <text>, </text>
                <reference id="oYwrnXcglhO4tlvhkxLGfFCYbAk=">encoded_user</reference>
                <text>, </text>
                <reference id="yzkq+uCmbTlXrfDuyd1fT0Zu6xw=">encoded_userinfo</reference>
                <text>, </text>
                <reference id="+ZB55yb2DeVYG+/eYqlMcGcedVE=">password</reference>
                <text>, </text>
                <reference id="/oa6wZJEG852J9Yi1LQlnq1n1tM=">user</reference>
                <text>.</text>
              </see>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="StringToken" class="type" default="string_token::return_string"/>
          <function name="zone_id" id="rN6p9/aLARL9S9gn02k+M+j21q8=">
            <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="1463" class="def"/>
            <attr id="is-const"/>
            <return>
              <type name="StringToken::result_type"/>
            </return>
            <param name="token" default="{}">
              <type class="rvalue-reference">
                <pointee-type name="StringToken"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Return the IPv6 Zone ID</text>
              </brief>
              <para>
                <text>If the host type is </text>
                <reference id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">host_type::ipv6</reference>
                <text>, this function returns the Zone ID as a string. Otherwise an empty string is returned. Any percent-escapes in the string are decoded first.</text>
              </para>
              <head>Example</head>
              <code>
                <text>assert( url_view( &quot;http://[fe80::1%25eth0]/&quot; ).zone_id() == &quot;eth0&quot; );</text>
              </code>
              <head>Complexity</head>
              <para>
                <text>Linear in </text>
                <mono>this-&gt;encoded_zone_id().size()</mono>
                <text>.</text>
              </para>
              <head>Exception Safety</head>
              <para>
                <text>Calls to allocate may throw.</text>
              </para>
              <head>BNF</head>
              <code>
                <text>host        = IP-literal / IPv4address / reg-name

IP-literal = &quot;[&quot; ( IPv6address / IPv6addrz / IPvFuture  ) &quot;]&quot;

ZoneID = 1*( unreserved / pct-encoded )

IPv6addrz = IPv6address &quot;%25&quot; ZoneID</text>
              </code>
              <head>Specification</head>
              <unorderedlist>
                <listitem>
                  <link href="https://datatracker.ietf.org/doc/html/rfc6874">Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</link>
                </listitem>
              </unorderedlist>
              <returns>
                <text>The Zone ID as a string.</text>
              </returns>
              <param name="token">
                <text>A string token customization.</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="conversion" name="operator basic_string_view&lt;char&gt;" exception-spec="noexcept" id="0JOtXYOmKvCl2dNIZYV6J7flgJE=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="282" class="def"/>
          <attr id="is-const"/>
          <return>
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </return>
          <doc>
            <brief>
              <text>Return the URL as a core::string_view</text>
            </brief>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A string view of the URL.</text>
            </returns>
          </doc>
        </function>
        <function name="max_size" exception-spec="noexcept" id="mg8FRYZ94og9lKYjTEYdjucqHw4=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="156" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <doc>
            <brief>
              <text>Return the maximum number of characters possible</text>
            </brief>
            <para>
              <text>This represents the largest number of characters that are theoretically possible to represent in a url, not including any null terminator. In practice the actual possible size may be lower than this number.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Constant.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>The maximum number of characters.</text>
            </returns>
          </doc>
        </function>
        <function name="digest" access="protected" exception-spec="noexcept" id="aSDB3babl7TsiU0T+gdHMM/NC5c=">
          <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="129"/>
          <attr id="is-const"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="salt" default="0">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <doc>
            <brief>
              <text>Calculate a hash of the url</text>
            </brief>
            <para>
              <text>This function calculates a hash of the url as if it were always normalized.</text>
            </para>
            <head>Complexity</head>
            <para>
              <text>Linear in </text>
              <mono>this-&gt;size()</mono>
              <text>.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <returns>
              <text>A hash value suitable for use in hash-based containers.</text>
            </returns>
            <param name="salt">
              <text>An initial value to add to the hash</text>
            </param>
          </doc>
        </function>
      </class>
      <enum name="error" class="scoped" id="0CIF+QeihUmkg/SM/JmNHthVUUc=">
        <base>
          <type name="int"/>
        </base>
        <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="22" class="def"/>
        <doc>
          <brief>
            <text>Error codes returned the library</text>
          </brief>
        </doc>
        <enum-constant name="success" initializer="0" id="S78C0hJzEkT4nSltCBLafTAq6+Q=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="30"/>
          <doc>
            <brief>
              <text>The operation completed successfully.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="illegal_null" initializer="1" id="sAQ6ltLKCd2RVUTyS3bIBWMnWEw=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="35"/>
          <doc>
            <brief>
              <text>Null encountered in pct-encoded.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="illegal_reserved_char" initializer="2" id="jxp4eZ+qInaZo038XQyMf0vyv4s=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="40"/>
          <doc>
            <brief>
              <text>Illegal reserved character in encoded string.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="non_canonical" initializer="3" id="LDuXVizApX0QRaohMHxF3T5Z7Z0=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="45"/>
          <doc>
            <brief>
              <text>A grammar element was not in canonical form.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="bad_pct_hexdig" initializer="4" id="o+k4/5uZDm7wAIoZrwqQIpA9bTA=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="54"/>
          <doc>
            <brief>
              <text>Bad hexadecimal digit.</text>
            </brief>
            <para>
              <text>This error condition is fatal.</text>
            </para>
          </doc>
        </enum-constant>
        <enum-constant name="incomplete_encoding" initializer="5" id="qUh3tTyr9Byv5NZxujjrZ9LKDQ0=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="61"/>
          <doc>
            <brief>
              <text>The percent-encoded sequence is incomplete.</text>
            </brief>
            <para>
              <text>This error condition is fatal.</text>
            </para>
          </doc>
        </enum-constant>
        <enum-constant name="missing_pct_hexdig" initializer="6" id="X94qcYTTQmA8e36ujC1IwCRUQaQ=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="68"/>
          <doc>
            <brief>
              <text>Missing hexadecimal digit.</text>
            </brief>
            <para>
              <text>This error condition is fatal.</text>
            </para>
          </doc>
        </enum-constant>
        <enum-constant name="no_space" initializer="7" id="Q9+GxgxVPBEJSy9NNuR09HPwdjY=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="77"/>
          <doc>
            <brief>
              <text>No space in output buffer</text>
            </brief>
            <para>
              <text>This error is returned when a provided output buffer was too small to hold the complete result of an algorithm.</text>
            </para>
          </doc>
        </enum-constant>
        <enum-constant name="not_a_base" initializer="8" id="7xVhcfBF1rACJbe3gKTKCTfQc9o=">
          <file short-path="boost/url/error.hpp" source-path="include/boost/url/error.hpp" line="82"/>
          <doc>
            <brief>
              <text>The URL is not a base URL</text>
            </brief>
          </doc>
        </enum-constant>
      </enum>
      <enum name="host_type" class="scoped" id="YLHFVyAYZGSFQe18DPGjn6XsAMs=">
        <base>
          <type name="int"/>
        </base>
        <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="24" class="def"/>
        <doc>
          <brief>
            <text>Identifies the type of host in a URL.</text>
          </brief>
          <para>
            <text>Values of this type are returned by URL views and containers to indicate the type of host present in a URL.</text>
          </para>
        </doc>
        <enum-constant name="none" initializer="0" id="QyoMTu07h232/Sxqovu2mGoPgTo=">
          <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="32"/>
          <doc>
            <brief>
              <text>No host is specified.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="name" initializer="1" id="HUq75uZ3LBPW3yvUAfpdNzqcfjc=">
          <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="37"/>
          <doc>
            <brief>
              <text>A host is specified by reg-name.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="ipv4" initializer="2" id="49F64dAiji9HVbP6MxLQiqot7AY=">
          <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="42"/>
          <doc>
            <brief>
              <text>A host is specified by </text>
              <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
              <text>.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="ipv6" initializer="3" id="jTh/N5N+Bz51cZo2Mwmh6tzxPOc=">
          <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="47"/>
          <doc>
            <brief>
              <text>A host is specified by </text>
              <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
              <text>.</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="ipvfuture" initializer="4" id="TcYJaTwDFsx+0S2CkvHHARcCqWc=">
          <file short-path="boost/url/host_type.hpp" source-path="include/boost/url/host_type.hpp" line="52"/>
          <doc>
            <brief>
              <text>A host is specified by IPvFuture.</text>
            </brief>
          </doc>
        </enum-constant>
      </enum>
      <enum name="scheme" class="scoped" id="P7uOjuAMILimKGOcbjDUSpMAL/U=">
        <base>
          <type name="unsigned short"/>
        </base>
        <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="33" class="def"/>
        <doc>
          <brief>
            <text>Identifies a known URL scheme</text>
          </brief>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <related>
            <reference id="0hWNSMZWo7QSp/muF+6J2s3jsLA=">default_port</reference>
            <reference id="ViRFbAhqyfzry2qMQUxKJSvsEQU=">string_to_scheme</reference>
            <reference id="bWzp24u26R/CcIVKOEeAZxMwSG4=">to_string</reference>
          </related>
        </doc>
        <enum-constant name="none" initializer="0" id="VupiauVBXlZQ8Uix+vk8kSl+fM8=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="37"/>
          <doc>
            <brief>
              <text>Indicates that no scheme is present</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="unknown" initializer="1" id="LJxTyQ55ot1WYLH7f46nZvdGU78=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="41"/>
          <doc>
            <brief>
              <text>Indicates the scheme is not a well-known scheme</text>
            </brief>
          </doc>
        </enum-constant>
        <enum-constant name="ftp" initializer="2" id="d8ubP8DxtHLPeCxOxFoziqGWz9o=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="55"/>
          <doc>
            <brief>
              <text>File Transfer Protocol (FTP)</text>
            </brief>
            <para>
              <text>FTP is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/draft-yevstifeyev-ftp-uri-scheme">The &apos;ftp&apos; URI Scheme</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
        <enum-constant name="file" initializer="3" id="u8zbBY+jioTYeE8MzAi9S7L7smU=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="68"/>
          <doc>
            <brief>
              <text>File URI Scheme</text>
            </brief>
            <para>
              <text>The File URI Scheme is typically used to retrieve files from within one&apos;s own computer.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc8089">The &quot;file&quot; URI Scheme (rfc8089)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
        <enum-constant name="http" initializer="4" id="/I4c+UqzLCwTbgp49iEtHVWFSWI=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="80"/>
          <doc>
            <brief>
              <text>The Hypertext Transfer Protocol URI Scheme</text>
            </brief>
            <para>
              <text>URLs of this type indicate a resource which is interacted with using the HTTP protocol.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc7230">Hypertext Transfer Protocol (HTTP/1.1) (rfc7230)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
        <enum-constant name="https" initializer="5" id="KEmCYq306TIiGIOzHXbK0/jECDM=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="93"/>
          <doc>
            <brief>
              <text>The Secure Hypertext Transfer Protocol URI Scheme</text>
            </brief>
            <para>
              <text>URLs of this type indicate a resource which is interacted with using the Secure HTTP protocol.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc7230">Hypertext Transfer Protocol (HTTP/1.1) (rfc7230)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
        <enum-constant name="ws" initializer="6" id="Kv7F3ajld9rhGt3jt2+KM7KcXo0=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="105"/>
          <doc>
            <brief>
              <text>The WebSocket URI Scheme</text>
            </brief>
            <para>
              <text>URLs of this type indicate a resource which is interacted with using the WebSocket protocol.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6455">The WebSocket Protocol (rfc6455)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
        <enum-constant name="wss" initializer="7" id="MoEJAAjP0vroIo1/vRGApCagYjI=">
          <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="118"/>
          <doc>
            <brief>
              <text>The Secure WebSocket URI Scheme</text>
            </brief>
            <para>
              <text>URLs of this type indicate a resource which is interacted with using the Secure WebSocket protocol.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc6455">The WebSocket Protocol (rfc6455)</link>
              </listitem>
            </unorderedlist>
          </doc>
        </enum-constant>
      </enum>
      <template>
        <tparam name="T" class="type"/>
        <function name="arg" id="IQym8fO7DIG67s+M2rtFQszkoaY=">
          <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="447" class="def"/>
          <return>
            <type id="HO2ZXp4PSbe153fApaGEDkq0ks0=" name="named_arg&lt;T&gt;"/>
          </return>
          <param name="name">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="arg">
            <type class="lvalue-reference">
              <pointee-type name="T" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Designate a named argument for a replacement field</text>
            </brief>
            <para>
              <text>Construct a named argument for a format URL string that contains named replacement fields.</text>
            </para>
            <para>
              <text>The function parameters should be convertible to an implementation defined type able to store the name and a reference to any type potentially used as a format argument.</text>
            </para>
            <head>Example</head>
            <para>
              <text>The function should be used to designate a named argument for a replacement field in a format URL string.</text>
            </para>
            <code>
              <text>assert(format(&quot;user/{id}&quot;, arg(&quot;id&quot;, 1)).buffer() == &quot;user/1&quot;);</text>
            </code>
            <returns>
              <text>A temporary object with reference semantics for a named argument</text>
            </returns>
            <param name="name">
              <text>The format argument name</text>
            </param>
            <param name="arg">
              <text>The format argument value</text>
            </param>
            <see>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text>, </text>
              <reference id="FNXbTBfIxbiM2pjYEryMCZH+yoY=">format_to</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
      </template>
      <function name="default_port" exception-spec="noexcept" id="0hWNSMZWo7QSp/muF+6J2s3jsLA=">
        <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="174"/>
        <return>
          <type id="o2i733RO+cPiHMrp5Xzij2jXYqU=" name="uint16_t"/>
        </return>
        <param name="s">
          <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="scheme"/>
        </param>
        <doc>
          <brief>
            <text>Return the default port for a known scheme</text>
          </brief>
          <para>
            <text>This function returns the default port for the known schemes. If the value does not represent a known scheme or the scheme does not represent a protocol, the function returns zero.</text>
          </para>
          <para>
            <text>The following ports are returned by the function:</text>
          </para>
          <unorderedlist>
            <listitem>
              <reference>scheme::ftp</reference>
              <text> = 21</text>
            </listitem>
            <listitem>
              <reference>scheme::http</reference>
              <text>, </text>
              <reference>scheme::ws</reference>
              <text> = 80</text>
            </listitem>
            <listitem>
              <reference>scheme::https</reference>
              <text>, </text>
              <reference>scheme::wss</reference>
              <text> = 443</text>
            </listitem>
          </unorderedlist>
          <returns>
            <text>An integer with the default port number</text>
          </returns>
          <param name="s">
            <text>The known scheme constant</text>
          </param>
          <relates>
            <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">scheme</reference>
          </relates>
        </doc>
      </function>
      <template>
        <tparam name="StringToken" class="type" default="string_token::return_string"/>
        <tparam name="CS" class="type"/>
        <function name="encode" exception-spec="noexcept" id="QFVACvvXYpvLaEockXLrw3Ob91A=">
          <file short-path="boost/url/encode.hpp" source-path="include/boost/url/encode.hpp" line="180"/>
          <return>
            <type name="StringToken::result_type"/>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="allowed">
            <type class="lvalue-reference">
              <pointee-type name="CS" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <param name="token" default="{}">
            <type class="rvalue-reference">
              <pointee-type name="StringToken"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Return a percent-encoded string</text>
            </brief>
            <para>
              <text>This function applies percent-encoding to the string using the given options and character set, and returns the result as a string when called with default arguments.</text>
            </para>
            <head>Example</head>
            <code>
              <text>encoding_opts opt;
opt.space_as_plus = true;
std::string s = encode( &quot;My Stuff&quot;, opt, pchars );

assert( s == &quot;My+Stuff&quot; );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Calls to allocate may throw.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.1">2.1. Percent-Encoding (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The string</text>
            </returns>
            <param name="s">
              <text>The string to encode.</text>
            </param>
            <param name="allowed">
              <text>The set of characters that is not percent-encoded.</text>
            </param>
            <param name="opt">
              <text>The options for encoding. If this parameter is omitted, the default options are used.</text>
            </param>
            <param name="token">
              <text>A string token.</text>
            </param>
            <see>
              <reference id="09aIpdxxNNYbVZSULaBGficRxZ4=">encode</reference>
              <text>, </text>
              <reference id="Xq8kBc9a/F5Bpmn1q4OszstzJ4g=">encoded_size</reference>
              <text>, </text>
              <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
              <text>,</text>
            </see>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="CS" class="type"/>
        <function name="encode" id="mv6LvkkTac7FhXwK+aU779HMEVw=">
          <file short-path="boost/url/encode.hpp" source-path="include/boost/url/encode.hpp" line="119"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="dest">
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
          </param>
          <param name="size">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="allowed">
            <type class="lvalue-reference">
              <pointee-type name="CS" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Apply percent-encoding to a string</text>
            </brief>
            <para>
              <text>This function applies percent-encoding to the string using the given options and character set. The destination buffer provided by the caller is used to store the result, which may be truncated if there is insufficient space.</text>
            </para>
            <head>Example</head>
            <code>
              <text>char buf[100];
assert( encode( buf, sizeof(buf), &quot;Program Files&quot;, pchars ) == 15 );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.1">2.1. Percent-Encoding (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The number of characters written to the destination buffer.</text>
            </returns>
            <param name="dest">
              <text>The destination buffer to write to.</text>
            </param>
            <param name="size">
              <text>The number of writable characters pointed to by </text>
              <mono>dest</mono>
              <text>. If this is less than </text>
              <mono>encoded_size(s)</mono>
              <text>, the result is truncated.</text>
            </param>
            <param name="s">
              <text>The string to encode.</text>
            </param>
            <param name="allowed">
              <text>The set of characters that is not percent-encoded.</text>
            </param>
            <param name="opt">
              <text>The options for encoding. If this parameter is omitted, the default options are used.</text>
            </param>
            <see>
              <reference id="09aIpdxxNNYbVZSULaBGficRxZ4=">encode</reference>
              <text>, </text>
              <reference id="Xq8kBc9a/F5Bpmn1q4OszstzJ4g=">encoded_size</reference>
              <text>, </text>
              <reference id="mgIS/AfQlcgKNFKOdLRtjihgyFk=">make_pct_string_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="CS" class="type"/>
        <function name="encode_unsafe" id="ydZ7bTykSMnwehDU9NtjTjWeB+I=">
          <file short-path="boost/url/encode.hpp" source-path="include/boost/url/encode.hpp" line="128"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="dest">
            <type class="pointer">
              <pointee-type name="char"/>
            </type>
          </param>
          <param name="size">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="allowed">
            <type class="lvalue-reference">
              <pointee-type name="CS" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="CS" class="type"/>
        <function name="encoded_size" exception-spec="noexcept" id="Xq8kBc9a/F5Bpmn1q4OszstzJ4g=">
          <file short-path="boost/url/encode.hpp" source-path="include/boost/url/encode.hpp" line="63"/>
          <return>
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </return>
          <param name="s">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="allowed">
            <type class="lvalue-reference">
              <pointee-type name="CS" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="opt" default="{}">
            <type id="Bb04pNwExynJkzlY9a9GCeeB13k=" name="encoding_opts"/>
          </param>
          <doc>
            <brief>
              <text>Return the buffer size needed for percent-encoding</text>
            </brief>
            <para>
              <text>This function returns the exact number of bytes necessary to store the result of applying percent-encoding to the string using the given options and character set. No encoding is actually performed.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert( encoded_size( &quot;My Stuff&quot;, pchars ) == 10 );</text>
            </code>
            <head>Exception Safety</head>
            <para>
              <text>Throws nothing.</text>
            </para>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.1">2.1. Percent-Encoding (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>The number of bytes needed, excluding any null terminator.</text>
            </returns>
            <param name="s">
              <text>The string to measure.</text>
            </param>
            <param name="allowed">
              <text>The set of characters that is not percent-encoded.</text>
            </param>
            <param name="opt">
              <text>The options for encoding. If this parameter is omitted, the default options are be used.</text>
            </param>
            <see>
              <reference id="09aIpdxxNNYbVZSULaBGficRxZ4=">encode</reference>
              <text>, </text>
              <reference id="Bb04pNwExynJkzlY9a9GCeeB13k=">encoding_opts</reference>
              <text>, </text>
              <reference id="mgIS/AfQlcgKNFKOdLRtjihgyFk=">make_pct_string_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
      </template>
      <function name="format" id="LG7Qu14WVkSnLUAFX5+XlzESQwE=">
        <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="314" class="def"/>
        <return>
          <type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
        </return>
        <param name="fmt">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <param name="args">
          <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;format_arg&gt;"/>
        </param>
        <doc>
          <brief>
            <text>Format arguments into a URL</text>
          </brief>
          <para>
            <text>Format arguments according to the format URL string into a </text>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <text>.</text>
          </para>
          <para>
            <text>This overload allows type-erased arguments to be passed as an initializer_list, which is mostly convenient for named parameters.</text>
          </para>
          <para>
            <text>All arguments must be convertible to a implementation defined type able to store a type-erased reference to any valid format argument.</text>
          </para>
          <para>
            <text>The rules for a format URL string are the same as for a </text>
            <mono>std::format_string</mono>
            <text>, where replacement fields are delimited by curly braces.</text>
          </para>
          <para>
            <text>The URL components to which replacement fields belong are identified before replacement is applied and any invalid characters for that formatted argument are percent-escaped.</text>
          </para>
          <para>
            <text>Hence, the delimiters between URL components, such as </text>
            <mono>:</mono>
            <text>, </text>
            <mono>//</mono>
            <text>, </text>
            <mono>?</mono>
            <text>, and </text>
            <mono>#</mono>
            <text>, should be included in the URL format string. Likewise, a format string with a single </text>
            <mono>&quot;{}&quot;</mono>
            <text> is interpreted as a path and any replacement characters invalid in this component will be encoded to form a valid URL.</text>
          </para>
          <head>Example</head>
          <code>
            <text>assert(format(&quot;user/{id}&quot;, {{&quot;id&quot;, 1}}).buffer() == &quot;user/1&quot;);</text>
          </code>
          <head>Preconditions</head>
          <para>
            <text>All replacement fields must be valid and the resulting URL should be valid after arguments are formatted into the URL.</text>
          </para>
          <para>
            <text>Because any invalid characters for a URL component are encoded by this function, only replacements in the scheme and port components might be invalid, as these components do not allow percent-encoding of arbitrary characters.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>replacement_field ::=  &quot;{&quot; [arg_id] [&quot;:&quot; (format_spec | chrono_format_spec)] &quot;}&quot;
arg_id            ::=  integer | identifier
integer           ::=  digit+
digit             ::=  &quot;0&quot;...&quot;9&quot;
identifier        ::=  id_start id_continue*
id_start          ::=  &quot;a&quot;...&quot;z&quot; | &quot;A&quot;...&quot;Z&quot; | &quot;_&quot;
id_continue       ::=  id_start | digit</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://fmt.dev/latest/syntax.html">Format String Syntax</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A URL holding the formatted result.</text>
          </returns>
          <param name="fmt">
            <text>The format URL string.</text>
          </param>
          <param name="args">
            <text>Arguments to be formatted.</text>
          </param>
          <throws>
            <mono>fmt</mono>
            <text> contains an invalid format string and the result contains an invalid URL after replacements are applied.</text>
          </throws>
          <see>
            <reference id="FNXbTBfIxbiM2pjYEryMCZH+yoY=">format_to</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
          </relates>
        </doc>
      </function>
      <template>
        <tparam name="Args" class="type"/>
        <function name="format" id="WRjsPLk/mxfEVUX/NFq2baquRAU=">
          <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="142" class="def"/>
          <return>
            <type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
          </return>
          <param name="fmt">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="args">
            <type class="rvalue-reference" is-pack="1">
              <pointee-type is-pack="1" name="Args"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Format arguments into a URL</text>
            </brief>
            <para>
              <text>Format arguments according to the format URL string into a </text>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <text>.</text>
            </para>
            <para>
              <text>The rules for a format URL string are the same as for a </text>
              <mono>std::format_string</mono>
              <text>, where replacement fields are delimited by curly braces.</text>
            </para>
            <para>
              <text>The URL components to which replacement fields belong are identified before replacement is applied and any invalid characters for that formatted argument are percent-escaped.</text>
            </para>
            <para>
              <text>Hence, the delimiters between URL components, such as </text>
              <mono>:</mono>
              <text>, </text>
              <mono>//</mono>
              <text>, </text>
              <mono>?</mono>
              <text>, and </text>
              <mono>#</mono>
              <text>, should be included in the URL format string. Likewise, a format string with a single </text>
              <mono>&quot;{}&quot;</mono>
              <text> is interpreted as a path and any replacement characters invalid in this component will be encoded to form a valid URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>assert(format(&quot;{}&quot;, &quot;Hello world!&quot;).buffer() == &quot;Hello%20world%21&quot;);</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>All replacement fields must be valid and the resulting URL should be valid after arguments are formatted into the URL.</text>
            </para>
            <para>
              <text>Because any invalid characters for a URL component are encoded by this function, only replacements in the scheme and port components might be invalid, as these components do not allow percent-encoding of arbitrary characters.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>replacement_field ::=  &quot;{&quot; [arg_id] [&quot;:&quot; (format_spec | chrono_format_spec)] &quot;}&quot;
arg_id            ::=  integer | identifier
integer           ::=  digit+
digit             ::=  &quot;0&quot;...&quot;9&quot;
identifier        ::=  id_start id_continue*
id_start          ::=  &quot;a&quot;...&quot;z&quot; | &quot;A&quot;...&quot;Z&quot; | &quot;_&quot;
id_continue       ::=  id_start | digit</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://fmt.dev/latest/syntax.html">Format String Syntax</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A URL holding the formatted result.</text>
            </returns>
            <param name="fmt">
              <text>The format URL string.</text>
            </param>
            <param name="args">
              <text>Arguments to be formatted.</text>
            </param>
            <throws>
              <mono>fmt</mono>
              <text> contains an invalid format string and the result contains an invalid URL after replacements are applied.</text>
            </throws>
            <see>
              <reference id="FNXbTBfIxbiM2pjYEryMCZH+yoY=">format_to</reference>
              <text>, </text>
              <reference id="IQym8fO7DIG67s+M2rtFQszkoaY=">arg</reference>
              <text>.</text>
            </see>
            <relates>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            </relates>
          </doc>
        </function>
      </template>
      <function name="format_to" id="ueXaMbO5jFzZWelOn6upDJcN55Y=">
        <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="406" class="def"/>
        <param name="u">
          <type class="lvalue-reference">
            <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
          </type>
        </param>
        <param name="fmt">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <param name="args">
          <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;format_arg&gt;"/>
        </param>
        <doc>
          <brief>
            <text>Format arguments into a URL</text>
          </brief>
          <para>
            <text>Format arguments according to the format URL string into a </text>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <text>.</text>
          </para>
          <para>
            <text>This overload allows type-erased arguments to be passed as an initializer_list, which is mostly convenient for named parameters.</text>
          </para>
          <para>
            <text>All arguments must be convertible to a implementation defined type able to store a type-erased reference to any valid format argument.</text>
          </para>
          <para>
            <text>The rules for a format URL string are the same as for a </text>
            <mono>std::format_string</mono>
            <text>, where replacement fields are delimited by curly braces.</text>
          </para>
          <para>
            <text>The URL components to which replacement fields belong are identified before replacement is applied and any invalid characters for that formatted argument are percent-escaped.</text>
          </para>
          <para>
            <text>Hence, the delimiters between URL components, such as </text>
            <mono>:</mono>
            <text>, </text>
            <mono>//</mono>
            <text>, </text>
            <mono>?</mono>
            <text>, and </text>
            <mono>#</mono>
            <text>, should be included in the URL format string. Likewise, a format string with a single </text>
            <mono>&quot;{}&quot;</mono>
            <text> is interpreted as a path and any replacement characters invalid in this component will be encoded to form a valid URL.</text>
          </para>
          <head>Example</head>
          <code>
            <text>static_url&lt;30&gt; u;
format_to(u, &quot;user/{id}&quot;, {{&quot;id&quot;, 1}})
assert(u.buffer() == &quot;user/1&quot;);</text>
          </code>
          <head>Preconditions</head>
          <para>
            <text>All replacement fields must be valid and the resulting URL should be valid after arguments are formatted into the URL.</text>
          </para>
          <para>
            <text>Because any invalid characters for a URL component are encoded by this function, only replacements in the scheme and port components might be invalid, as these components do not allow percent-encoding of arbitrary characters.</text>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Strong guarantee.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>replacement_field ::=  &quot;{&quot; [arg_id] [&quot;:&quot; (format_spec | chrono_format_spec)] &quot;}&quot;
arg_id            ::=  integer | identifier
integer           ::=  digit+
digit             ::=  &quot;0&quot;...&quot;9&quot;
identifier        ::=  id_start id_continue*
id_start          ::=  &quot;a&quot;...&quot;z&quot; | &quot;A&quot;...&quot;Z&quot; | &quot;_&quot;
id_continue       ::=  id_start | digit</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://fmt.dev/latest/syntax.html">Format String Syntax</link>
            </listitem>
          </unorderedlist>
          <param name="u">
            <text>An object that derives from </text>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <text>.</text>
          </param>
          <param name="fmt">
            <text>The format URL string.</text>
          </param>
          <param name="args">
            <text>Arguments to be formatted.</text>
          </param>
          <throws>
            <mono>fmt</mono>
            <text> contains an invalid format string and </text>
            <mono>u</mono>
            <text> contains an invalid URL after replacements are applied.</text>
          </throws>
          <see>
            <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
          </relates>
        </doc>
      </function>
      <template>
        <tparam name="Args" class="type"/>
        <function name="format_to" id="K7ofEKM2bNb4ZS9OFo0DX+7Ep9I=">
          <file short-path="boost/url/format.hpp" source-path="include/boost/url/format.hpp" line="225" class="def"/>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
            </type>
          </param>
          <param name="fmt">
            <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
          </param>
          <param name="args">
            <type class="rvalue-reference" is-pack="1">
              <pointee-type is-pack="1" name="Args"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Format arguments into a URL</text>
            </brief>
            <para>
              <text>Format arguments according to the format URL string into a </text>
              <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
              <text>.</text>
            </para>
            <para>
              <text>The rules for a format URL string are the same as for a </text>
              <mono>std::format_string</mono>
              <text>, where replacement fields are delimited by curly braces.</text>
            </para>
            <para>
              <text>The URL components to which replacement fields belong are identified before replacement is applied and any invalid characters for that formatted argument are percent-escaped.</text>
            </para>
            <para>
              <text>Hence, the delimiters between URL components, such as </text>
              <mono>:</mono>
              <text>, </text>
              <mono>//</mono>
              <text>, </text>
              <mono>?</mono>
              <text>, and </text>
              <mono>#</mono>
              <text>, should be included in the URL format string. Likewise, a format string with a single </text>
              <mono>&quot;{}&quot;</mono>
              <text> is interpreted as a path and any replacement characters invalid in this component will be encoded to form a valid URL.</text>
            </para>
            <head>Example</head>
            <code>
              <text>static_url&lt;30&gt; u;
format(u, &quot;{}&quot;, &quot;Hello world!&quot;);
assert(u.buffer() == &quot;Hello%20world%21&quot;);</text>
            </code>
            <head>Preconditions</head>
            <para>
              <text>All replacement fields must be valid and the resulting URL should be valid after arguments are formatted into the URL.</text>
            </para>
            <para>
              <text>Because any invalid characters for a URL component are encoded by this function, only replacements in the scheme and port components might be invalid, as these components do not allow percent-encoding of arbitrary characters.</text>
            </para>
            <head>Exception Safety</head>
            <para>
              <text>Strong guarantee.</text>
            </para>
            <head>BNF</head>
            <code>
              <text>replacement_field ::=  &quot;{&quot; [arg_id] [&quot;:&quot; (format_spec | chrono_format_spec)] &quot;}&quot;
arg_id            ::=  integer | identifier
integer           ::=  digit+
digit             ::=  &quot;0&quot;...&quot;9&quot;
identifier        ::=  id_start id_continue*
id_start          ::=  &quot;a&quot;...&quot;z&quot; | &quot;A&quot;...&quot;Z&quot; | &quot;_&quot;
id_continue       ::=  id_start | digit</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://fmt.dev/latest/syntax.html">Format String Syntax</link>
              </listitem>
            </unorderedlist>
            <param name="u">
              <text>An object that derives from </text>
              <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
              <text>.</text>
            </param>
            <param name="fmt">
              <text>The format URL string.</text>
            </param>
            <param name="args">
              <text>Arguments to be formatted.</text>
            </param>
            <throws>
              <mono>fmt</mono>
              <text> contains an invalid format string and </text>
              <mono>u</mono>
              <text> contains an invalid URL after replacements are applied.</text>
            </throws>
            <see>
              <reference id="ZTww0Dx20RT0z0QTruz8U8gZuIY=">format</reference>
              <text>.</text>
            </see>
            <relates>
              <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
              <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
              <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
              <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            </relates>
          </doc>
        </function>
      </template>
      <function name="make_pct_string_view" exception-spec="noexcept" id="mgIS/AfQlcgKNFKOdLRtjihgyFk=">
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="257"/>
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="429"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;pct_string_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a valid percent-encoded string</text>
          </brief>
          <para>
            <text>If </text>
            <mono>s</mono>
            <text> is a valid percent-encoded string, the function returns the buffer as a valid view which may be used to perform decoding or measurements. Otherwise the result contains an error code. Upon success, the returned view references the original character buffer; Ownership is not transferred.</text>
          </para>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>s.size()</mono>
            <text>.</text>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing.</text>
          </para>
          <returns>
            <text>On success, the valid percent-encoded string.</text>
          </returns>
          <param name="s">
            <text>The string to validate.</text>
          </param>
        </doc>
      </function>
      <function name="make_pct_string_view_unsafe" exception-spec="noexcept" id="LmKHQZfsj3PYKU9ldLJvacNvZaA=">
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="435" class="def"/>
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="65"/>
        <file short-path="boost/url/pct_string_view.hpp" source-path="include/boost/url/pct_string_view.hpp" line="34"/>
        <return>
          <type id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=" name="pct_string_view"/>
        </return>
        <param name="data">
          <type class="pointer">
            <pointee-type name="char" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="size">
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
        </param>
        <param name="decoded_size">
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
        </param>
      </function>
      <function name="parse_absolute_uri" id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">
        <file short-path="boost/url/parse.hpp" source-path="include/boost/url/parse.hpp" line="64"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;url_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a reference to a parsed URL string</text>
          </brief>
          <para>
            <text>This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>system::result&lt; url_view &gt; rv = parse_absolute_uri( &quot;http://example.com/index.htm?id=1&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

hier-part       = &quot;//&quot; authority path-abempty
                / path-absolute
                / path-rootless
                / path-empty</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.3">4.3. Absolute URI (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A view to the parsed URL</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <throws>
            <mono>s.size() &gt; url_view::max_size</mono>
          </throws>
          <see>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_authority" exception-spec="noexcept" id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1541"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;authority_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Parse an authority</text>
          </brief>
          <para>
            <text>This function parses a string according to the authority grammar below, and returns an </text>
            <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
            <text> referencing the string. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the string extends until the view is no longer being accessed.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>authority     = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]

userinfo      = user [ &quot;:&quot; [ password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / &quot;:&quot; )

host          = IP-literal / IPv4address / reg-name

port          = *DIGIT</text>
          </code>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing.</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A view to the parsed authority</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <see>
            <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_ipv4_address" exception-spec="noexcept" id="3H1nFll3jIwKtiUjrAoL1itMXS8=">
        <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="361"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;ipv4_address&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return an IPv4 address from an IP address string in dotted decimal form</text>
          </brief>
          <returns>
            <text>The parsed address, or an error code.</text>
          </returns>
          <param name="s">
            <text>The string to parse.</text>
          </param>
          <relates>
            <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_ipv6_address" exception-spec="noexcept" id="bEw/qaAlNfZy1QraETx5dipoF+I=">
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="401"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;ipv6_address&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Parse a string containing an IPv6 address.</text>
          </brief>
          <para>
            <text>This function attempts to parse the string as an IPv6 address and returns a result containing the address upon success, or an error code if the string does not contain a valid IPv6 address.</text>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing.</text>
          </para>
          <returns>
            <text>A result containing the address.</text>
          </returns>
          <param name="s">
            <text>The string to parse.</text>
          </param>
          <relates>
            <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_origin_form" id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">
        <file short-path="boost/url/parse.hpp" source-path="include/boost/url/parse.hpp" line="110"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;url_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a reference to a parsed URL string</text>
          </brief>
          <para>
            <text>This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>system::result&lt; url_view &gt; = parse_origin_form( &quot;/index.htm?layout=mobile&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>origin-form    = absolute-path [ &quot;?&quot; query ]

absolute-path = 1*( &quot;/&quot; segment )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1">5.3.1.  origin-form (rfc7230)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A view to the parsed URL</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <throws>
            <mono>s.size() &gt; url_view::max_size</mono>
          </throws>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_path" exception-spec="noexcept" id="UGT2YeR0J7z0ZcyG8/VStlmtGhU=">
        <file short-path="boost/url/segments_encoded_view.hpp" source-path="include/boost/url/segments_encoded_view.hpp" line="284"/>
        <file short-path="boost/url/parse_path.hpp" source-path="include/boost/url/parse_path.hpp" line="48"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;segments_encoded_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Parse a string and return an encoded segment view</text>
          </brief>
          <para>
            <text>This function parses the string and returns the corresponding path object if the string is valid, otherwise returns an error.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>path          = [ &quot;/&quot; ] segment *( &quot;/&quot; segment )</text>
          </code>
          <head>Exception Safety</head>
          <para>
            <text>No-throw guarantee.</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3.  Path (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A valid view on success, otherwise an error code.</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <see>
            <reference id="EvaX3SmNTAtai2Kf6Kma3fUkTkQ=">segments_encoded_view</reference>
            <text>.</text>
          </see>
        </doc>
      </function>
      <function name="parse_query" exception-spec="noexcept" id="uNT8hVd3FIORJnihg+axBbyOnBE=">
        <file short-path="boost/url/params_encoded_view.hpp" source-path="include/boost/url/params_encoded_view.hpp" line="239"/>
        <file short-path="boost/url/parse_query.hpp" source-path="include/boost/url/parse_query.hpp" line="47"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;params_encoded_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Parse a string and return an encoded params view</text>
          </brief>
          <para>
            <text>This function parses the string and returns the corresponding params object if the string is valid, otherwise returns an error.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>query         = *( pchar / &quot;/&quot; / &quot;?&quot; )</text>
          </code>
          <head>Exception Safety</head>
          <para>
            <text>No-throw guarantee.</text>
          </para>
          <head>Specification</head>
          <returns>
            <text>A valid view on success, otherwise an error code.</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <see>
            <reference id="0nSfM4mK92fIx58KtzdWGiHuq2w=">params_encoded_view</reference>
            <text>.</text>
          </see>
        </doc>
      </function>
      <function name="parse_relative_ref" id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">
        <file short-path="boost/url/parse.hpp" source-path="include/boost/url/parse.hpp" line="162"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;url_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a reference to a parsed URL string</text>
          </brief>
          <para>
            <text>This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>system::result&lt; url_view &gt; = parse_relative_ref( &quot;images/dot.gif?v=hide#a&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-abempty
              / path-empty</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2. Relative Reference (rfc3986)</link>
            </listitem>
            <listitem>
              <link href="https://www.rfc-editor.org/errata/eid5428">Errata ID: 5428 (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A view to the parsed URL</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <throws>
            <mono>s.size() &gt; url_view::max_size</mono>
          </throws>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_uri" id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">
        <file short-path="boost/url/parse.hpp" source-path="include/boost/url/parse.hpp" line="211"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;url_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a reference to a parsed URL string</text>
          </brief>
          <para>
            <text>This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>system::result&lt; url_view &gt; = parse_uri( &quot;https://www.example.com/index.htm?id=guest#s1&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part     = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-rootless
              / path-empty</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3">3. Syntax Components (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A </text>
            <mono>boost::system::result</mono>
            <text> containing a value or an error</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <throws>
            <mono>s.size() &gt; url_view::max_size</mono>
          </throws>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="parse_uri_reference" id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">
        <file short-path="boost/url/parse.hpp" source-path="include/boost/url/parse.hpp" line="272"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;url_view&gt;"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return a reference to a parsed URL string</text>
          </brief>
          <para>
            <text>This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>system::result&lt; url_view &gt; = parse_uri_reference( &quot;ws://echo.example.com/?name=boost#demo&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>URI-reference = URI / relative-ref

URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]

hier-part     = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-rootless
              / path-empty

relative-part = &quot;//&quot; authority path-abempty
              / path-absolute
              / path-noscheme
              / path-abempty
              / path-empty</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.1">4.1. URI Reference (rfc3986)</link>
            </listitem>
            <listitem>
              <link href="https://www.rfc-editor.org/errata/eid5428">Errata ID: 5428 (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>A view to the parsed URL</text>
          </returns>
          <param name="s">
            <text>The string to parse</text>
          </param>
          <throws>
            <mono>s.size() &gt; url_view::max_size</mono>
          </throws>
          <see>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <template>
        <tparam name="CS" class="type"/>
        <function name="pct_encoded_rule" exception-spec="noexcept" id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">
          <file short-path="boost/url/rfc/pct_encoded_rule.hpp" source-path="include/boost/url/rfc/pct_encoded_rule.hpp" line="84" class="def"/>
          <attr id="has-trailing-return"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <return>
            <type id="CQTpJwwMukasfaQaxylb5piRLpU=" name="implementation_defined::pct_encoded_rule_t&lt;CS&gt;"/>
          </return>
          <param name="cs">
            <type class="lvalue-reference">
              <pointee-type name="CS" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Rule for a string with percent-encoded escapes</text>
            </brief>
            <para>
              <text>This function returns a rule which matches a percent-encoded string, permitting characters in the string which are also in the specified character set to be used unescaped.</text>
            </para>
            <head>Value Type</head>
            <code>
              <text>using value_type = pct_string_view;</text>
            </code>
            <head>Example</head>
            <para>
              <text>Rules are used with the function </text>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
              <text>.</text>
            </para>
            <code>
              <text>//  pchar         = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;

system::result&lt; pct_string_view &gt; rv = grammar::parse( &quot;Program%20Files&quot;, pct_encoded_rule( pchars ) );</text>
            </code>
            <head>BNF</head>
            <code>
              <text>pct-encoded   = &quot;%&quot; HEXDIG HEXDIG</text>
            </code>
            <head>Specification</head>
            <unorderedlist>
              <listitem>
                <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.1">2.1. Percent-Encoding (rfc3986)</link>
              </listitem>
            </unorderedlist>
            <returns>
              <text>A rule object.</text>
            </returns>
            <param name="cs">
              <text>The character set indicating which characters are allowed without escapes. Any character which is not in this set must be escaped, or else parsing returns an error.</text>
            </param>
            <see>
              <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
              <text>, </text>
              <reference id="2V+Z9ecepqbZRna6GFcGry1dzDs=">pchars</reference>
              <text>, </text>
              <reference id="t9KlfUmMV/Lq0e5tGD9d/eCq+X0=">pct_string_view</reference>
              <text>.</text>
            </see>
          </doc>
        </function>
      </template>
      <function name="resolve" id="/6zWjIFN5df0PBj9zFsfNUjNY6s=">
        <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="3066" class="def"/>
        <file short-path="boost/url/url_base.hpp" source-path="include/boost/url/url_base.hpp" line="2892"/>
        <return>
          <type id="O+YzwnquzbCEPErxi2iuhXKphsk=" name="system::result&lt;void&gt;"/>
        </return>
        <param name="base">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="ref">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="dest">
          <type class="lvalue-reference">
            <pointee-type id="aHkFCWJbYb0t+7FT+A5gCI0krpU=" name="url_base"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Resolve a URL reference against a base URL</text>
          </brief>
          <para>
            <text>This function attempts to resolve a URL reference </text>
            <mono>ref</mono>
            <text> against the base URL </text>
            <mono>base</mono>
            <text> in a manner similar to that of a web browser resolving an anchor tag.</text>
          </para>
          <para>
            <text>The base URL must satisfy the </text>
            <italic>URI</italic>
            <text> grammar. In other words, it must contain a scheme.</text>
          </para>
          <para>
            <text>Relative references are only usable when in the context of a base absolute URI. This process of resolving a relative </text>
            <italic>reference</italic>
            <text> within the context of a </text>
            <italic>base</italic>
            <text> URI is defined in detail in rfc3986 (see below).</text>
          </para>
          <para>
            <text>The resolution process works as if the relative reference is appended to the base URI and the result is normalized.</text>
          </para>
          <para>
            <text>Given the input base URL, this function resolves the relative reference as if performing the following steps:</text>
          </para>
          <unorderedlist>
            <listitem>
              <text>Ensure the base URI has at least a scheme</text>
            </listitem>
            <listitem>
              <text>Normalizing the reference path</text>
            </listitem>
            <listitem>
              <text>Merge base and reference paths</text>
            </listitem>
            <listitem>
              <text>Normalize the merged path</text>
            </listitem>
          </unorderedlist>
          <para>
            <text>This function places the result of the resolution into </text>
            <mono>dest</mono>
            <text>, which can be any of the url containers that inherit from </text>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <text>.</text>
          </para>
          <para>
            <text>If an error occurs, the contents of </text>
            <mono>dest</mono>
            <text> is unspecified and </text>
            <mono>ec</mono>
            <text> is set.</text>
          </para>
          <para class="note">
            <text>Abnormal hrefs where the number of &quot;..&quot; segments exceeds the number of segments in the base path are handled by including the unmatched &quot;..&quot; segments in the result, as described in </text>
            <link href="https://www.rfc-editor.org/errata/eid4547">Errata 4547</link>
            <text>.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url dest;
system::error_code ec;

resolve(&quot;/one/two/three&quot;, &quot;four&quot;, dest, ec);
assert( dest.str() == &quot;/one/two/four&quot; );

resolve(&quot;http://example.com/&quot;, &quot;/one&quot;, dest, ec);
assert( dest.str() == &quot;http://example.com/one&quot; );

resolve(&quot;http://example.com/one&quot;, &quot;/two&quot;, dest, ec);
assert( dest.str() == &quot;http://example.com/two&quot; );

resolve(&quot;http://a/b/c/d;p?q&quot;, &quot;g#s&quot;, dest, ec);
assert( dest.str() == &quot;http://a/b/c/g#s&quot; );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>absolute-URI  = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]</text>
          </code>
          <head>Exception Safety</head>
          <para>
            <text>Basic guarantee. Calls to allocate may throw.</text>
          </para>
          <head>Specification</head>
          <returns>
            <text>An empty </text>
            <mono>boost::system::result</mono>
            <text> upon success, otherwise an error code if </text>
            <mono>!base.has_scheme()</mono>
            <text>.</text>
          </returns>
          <param name="base">
            <text>The base URL to resolve against.</text>
          </param>
          <param name="ref">
            <text>The URL reference to resolve.</text>
          </param>
          <param name="dest">
            <text>The container where the result is written, upon success.</text>
          </param>
          <see>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <reference id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=">url_view_base</reference>
          </relates>
        </doc>
      </function>
      <function name="string_to_scheme" exception-spec="noexcept" id="ViRFbAhqyfzry2qMQUxKJSvsEQU=">
        <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="141"/>
        <return>
          <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="scheme"/>
        </return>
        <param name="s">
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </param>
        <doc>
          <brief>
            <text>Return the known scheme for a non-normalized string, if known</text>
          </brief>
          <para>
            <text>If the string does not identify a known scheme, the value </text>
            <reference id="LJxTyQ55ot1WYLH7f46nZvdGU78=">scheme::unknown</reference>
            <text> is returned.</text>
          </para>
          <head>BNF</head>
          <code>
            <text>scheme      = ALPHA *( ALPHA / DIGIT / &quot;+&quot; / &quot;-&quot; / &quot;.&quot; )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.1">3.1. Scheme (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <text>The known scheme</text>
          </returns>
          <param name="s">
            <text>The string holding the scheme</text>
          </param>
          <relates>
            <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">scheme</reference>
          </relates>
        </doc>
      </function>
      <function name="swap" exception-spec="noexcept" id="r+2jsv/V/6eYTTn9n6oVkgy6U/Y=">
        <file short-path="boost/url/url.hpp" source-path="include/boost/url/url.hpp" line="400" class="def"/>
        <param name="v0">
          <type class="lvalue-reference">
            <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
          </type>
        </param>
        <param name="v1">
          <type class="lvalue-reference">
            <pointee-type id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=" name="url"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Swap</text>
          </brief>
          <para>
            <text>Exchanges the contents of </text>
            <mono>v0</mono>
            <text> with another </text>
            <mono>v1</mono>
            <text>. All views, iterators and references remain valid.</text>
          </para>
          <para>
            <text>If </text>
            <mono>&amp;v0 == &amp;v1</mono>
            <text>, this function call has no effect.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url u1( &quot;https://www.example.com&quot; );
url u2( &quot;https://www.boost.org&quot; );
std::swap(u1, u2);
assert(u1 == &quot;https://www.boost.org&quot; );
assert(u2 == &quot;https://www.example.com&quot; );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>v0.swap( v1 );</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Constant</text>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <param name="v0">
            <text>The first object to swap</text>
          </param>
          <param name="v1">
            <text>The second object to swap</text>
          </param>
          <see>
            <reference id="iZ1eWw5IAl1ilQ72KPrht00pGzU=">url::swap</reference>
          </see>
        </doc>
      </function>
      <function name="to_string" exception-spec="noexcept" id="bWzp24u26R/CcIVKOEeAZxMwSG4=">
        <file short-path="boost/url/scheme.hpp" source-path="include/boost/url/scheme.hpp" line="151"/>
        <return>
          <type id="UU713q4e9nAhffTdQymLf8qVeZ4=" name="core::string_view"/>
        </return>
        <param name="s">
          <type id="P7uOjuAMILimKGOcbjDUSpMAL/U=" name="scheme"/>
        </param>
        <doc>
          <brief>
            <text>Return the normalized string for a known scheme</text>
          </brief>
          <returns>
            <text>A string representing the known scheme</text>
          </returns>
          <param name="s">
            <text>The known scheme constant</text>
          </param>
          <relates>
            <reference id="P7uOjuAMILimKGOcbjDUSpMAL/U=">scheme</reference>
          </relates>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="9qni7/SzoSi1aPxdsLv9l8kUlMw=">
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="357" class="def"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="addr">
          <type class="lvalue-reference">
            <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format the address to an output stream</text>
          </brief>
          <para>
            <text>This function writes the address to an output stream using standard notation.</text>
          </para>
          <returns>
            <text>The output stream, for chaining.</text>
          </returns>
          <param name="os">
            <text>The output stream to write to.</text>
          </param>
          <param name="addr">
            <text>The address to write.</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="qsp5+FhQP5YRksKrdFYv9yXJFZA=">
        <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="325" class="def"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="addr">
          <type class="lvalue-reference">
            <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format the address to an output stream.</text>
          </brief>
          <para>
            <text>IPv4 addresses written to output streams are written in their dotted decimal format.</text>
          </para>
          <returns>
            <text>The output stream.</text>
          </returns>
          <param name="os">
            <text>The output stream.</text>
          </param>
          <param name="addr">
            <text>The address to format.</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="NEW80CQmVEZON/EvVc6gQsnJwIE=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="1016" class="def"/>
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="1044"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="s">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format the string with percent-decoding applied to the output stream</text>
          </brief>
          <para>
            <text>This hidden friend function serializes the decoded view to the output stream.</text>
          </para>
          <para>
            <text>Format the string with percent-decoding applied to the output stream</text>
          </para>
          <para>
            <text>This function serializes the decoded view to the output stream.</text>
          </para>
          <returns>
            <text>A reference to the output stream, for chaining</text>
          </returns>
          <param name="os">
            <text>The output stream to write to</text>
          </param>
          <param name="s">
            <text>The decoded view to write</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="zokg5jecSwQDec3+skioIsjq7HA=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2727" class="def"/>
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2783"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="u">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format the url to the output stream</text>
          </brief>
          <para>
            <text>This function serializes the url to the specified output stream. Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;http://www.example.com/index.htm&quot; );
std::stringstream ss;
ss &lt;&lt; u;
assert( ss.str() == &quot;http://www.example.com/index.htm&quot; );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; u.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>u.buffer().size()</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Basic guarantee.</text>
          </para>
          <para>
            <text>Format the url to the output stream</text>
          </para>
          <para>
            <text>This function serializes the url to the specified output stream. Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u( &quot;http://www.example.com/index.htm&quot; );
std::stringstream ss;
ss &lt;&lt; u;
assert( ss.str() == &quot;http://www.example.com/index.htm&quot; );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; u.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>u.buffer().size()</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Basic guarantee.</text>
          </para>
          <returns>
            <text>A reference to the output stream, for chaining</text>
          </returns>
          <param name="os">
            <text>The output stream to write to.</text>
          </param>
          <param name="u">
            <text>The url to write.</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="3onwt5rBl6meLlK3K/V1g+2nSAo=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1467" class="def"/>
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1495"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format the encoded authority to the output stream</text>
          </brief>
          <para>
            <text>This hidden friend function serializes the encoded URL to the output stream.</text>
          </para>
          <head>Example</head>
          <code>
            <text>authority_view a( &quot;www.example.com&quot; );

std::cout &lt;&lt; a &lt;&lt; std::endl;</text>
          </code>
          <para>
            <text>Format the encoded authority to the output stream</text>
          </para>
          <para>
            <text>This function serializes the encoded URL to the output stream.</text>
          </para>
          <head>Example</head>
          <code>
            <text>authority_view a( &quot;www.example.com&quot; );

std::cout &lt;&lt; a &lt;&lt; std::endl;</text>
          </code>
          <returns>
            <text>A reference to the output stream, for chaining</text>
          </returns>
          <param name="os">
            <text>The output stream to write to</text>
          </param>
          <param name="a">
            <text>The URL to write</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="m1bjg5/JDezNDeOzKAGocq4cbMo=">
        <file short-path="boost/url/params_encoded_base.hpp" source-path="include/boost/url/params_encoded_base.hpp" line="556"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type id="2+L1/+BrjUzoccWPIYkGu108y1I=" name="params_encoded_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format to an output stream</text>
          </brief>
          <para>
            <text>Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>ps.buffer().size()</mono>
            <text>.</text>
          </para>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; ps.buffer();</text>
          </code>
          <returns>
            <text>A reference to the output stream, for chaining</text>
          </returns>
          <param name="os">
            <text>The output stream to write to</text>
          </param>
          <param name="qp">
            <text>The params to write</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="vVadU753DGJeIvLg5Y82wa2X3RM=">
        <file short-path="boost/url/params_base.hpp" source-path="include/boost/url/params_base.hpp" line="534"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type id="paRP7A1SOQlKcnfXhxL4FgbVXKs=" name="params_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format to an output stream</text>
          </brief>
          <para>
            <text>Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>ps.buffer().size()</mono>
            <text>.</text>
          </para>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; ps.buffer();</text>
          </code>
          <returns>
            <text>A reference to the output stream, for chaining</text>
          </returns>
          <param name="os">
            <text>The output stream to write to</text>
          </param>
          <param name="qp">
            <text>The parameters to write</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="ONO86eX5CF2ishro0KUuUAwEFvY=">
        <file short-path="boost/url/segments_encoded_base.hpp" source-path="include/boost/url/segments_encoded_base.hpp" line="344"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="ps">
          <type class="lvalue-reference">
            <pointee-type id="qs4TNMM406MPgeboXz6oVUmcauE=" name="segments_encoded_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format to an output stream</text>
          </brief>
          <para>
            <text>Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>ps.buffer().size()</mono>
            <text>.</text>
          </para>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; ps.buffer();</text>
          </code>
          <returns>
            <text>A reference to the output stream.</text>
          </returns>
          <param name="os">
            <text>The output stream to write to.</text>
          </param>
          <param name="ps">
            <text>The object to format.</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;&lt;" id="9Gd+c0IFQULeJJ2RRjkyv2WR5/0=">
        <file short-path="boost/url/segments_base.hpp" source-path="include/boost/url/segments_base.hpp" line="335"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
          </type>
        </param>
        <param name="ps">
          <type class="lvalue-reference">
            <pointee-type id="ge9cOBTN19ywbVTnB5ajdJUC46Q=" name="segments_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Format to an output stream</text>
          </brief>
          <para>
            <text>Any percent-escapes are emitted as-is; no decoding is performed.</text>
          </para>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>ps.buffer().size()</mono>
            <text>.</text>
          </para>
          <head>Effects</head>
          <code>
            <text>return os &lt;&lt; ps.buffer();</text>
          </code>
          <returns>
            <text>A reference to the output stream.</text>
          </returns>
          <param name="os">
            <text>The output stream to write to.</text>
          </param>
          <param name="ps">
            <text>The segments to write.</text>
          </param>
        </doc>
      </function>
      <function name="operator==" exception-spec="noexcept" id="/Rx5cBJ8hgc8Yigu7zsZeyTHTTc=">
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="305" class="def"/>
        <attr id="operator" name="eq" value="28"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a2">
          <type class="lvalue-reference">
            <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return true if two addresses are equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the addresses are equal</text>
          </returns>
          <param name="a1">
            <text>The first address to compare.</text>
          </param>
          <param name="a2">
            <text>The second address to compare.</text>
          </param>
        </doc>
      </function>
      <function name="operator==" exception-spec="noexcept" id="8obEUnt+lW3Tn+hrzU1C0MkLqg0=">
        <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="259" class="def"/>
        <attr id="operator" name="eq" value="28"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a2">
          <type class="lvalue-reference">
            <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return true if two addresses are equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the addresses are equal, otherwise </text>
            <mono>false</mono>
            <text>.</text>
          </returns>
          <param name="a1">
            <text>The first address to compare.</text>
          </param>
          <param name="a2">
            <text>The second address to compare.</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator==" exception-spec="noexcept" id="LXfbkHmiZLmAZU/h8W/FYVwBH3o=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="658" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="eq" value="28"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for equality</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator==" exception-spec="noexcept" id="kAkiATsPkDLw0dMpRFfiCYb0Nb0=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="641" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="eq" value="28"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for equality</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator==" exception-spec="noexcept" id="kUOudipymtwCZViHCF1w2siMg5M=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="625" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for equality</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is equal to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator==" exception-spec="noexcept" id="E2+0o+/H5dWqJ1IkTzJ6aHTaMHE=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2466" class="def"/>
        <attr id="operator" name="eq" value="28"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.a.com/index.htm&quot; );
url_view u1( &quot;http://www.a.com/index.htm&quot; );
assert( u0 == u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() == b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 == u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator==" exception-spec="noexcept" id="ktBT7dVJ8LGHL6lYOr37Ts3gI4I=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1318" class="def"/>
        <attr id="operator" name="eq" value="28"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 == a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator!=" exception-spec="noexcept" id="cqaXRu9n2E1Aq+fNQVQILaVo/Ss=">
        <file short-path="boost/url/ipv6_address.hpp" source-path="include/boost/url/ipv6_address.hpp" line="320" class="def"/>
        <attr id="operator" name="not_eq" value="29"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a2">
          <type class="lvalue-reference">
            <pointee-type id="dhMSRVBIIIItY0URHSc8rwHcdTQ=" name="ipv6_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return true if two addresses are not equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the addresses are not equal</text>
          </returns>
          <param name="a1">
            <text>The first address to compare.</text>
          </param>
          <param name="a2">
            <text>The second address to compare.</text>
          </param>
        </doc>
      </function>
      <function name="operator!=" exception-spec="noexcept" id="Lk6u1xBQtbEyGW+iFcIykNQyhVo=">
        <file short-path="boost/url/ipv4_address.hpp" source-path="include/boost/url/ipv4_address.hpp" line="274" class="def"/>
        <attr id="operator" name="not_eq" value="29"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a2">
          <type class="lvalue-reference">
            <pointee-type id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=" name="ipv4_address" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return true if two addresses are not equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the addresses are not equal, otherwise </text>
            <mono>false</mono>
            <text>.</text>
          </returns>
          <param name="a1">
            <text>The first address to compare.</text>
          </param>
          <param name="a2">
            <text>The second address to compare.</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator!=" exception-spec="noexcept" id="vSmsDLb1jKJxuRaLWtT+wXrZDEQ=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="725" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="not_eq" value="29"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for inequality</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is not equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator!=" exception-spec="noexcept" id="YH1cQI8sFN/t7l0ziTbCiZ8hyKc=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="708" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="not_eq" value="29"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for inequality</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is not equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator!=" exception-spec="noexcept" id="gnCCLTp9Yc1Gqma6vl3Zy+AGvl8=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="692" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="not_eq" value="29"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for inequality</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is not equal to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator!=" exception-spec="noexcept" id="QA2q/R+XvrJl2j8UnJwv+lnhdDA=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2510" class="def"/>
        <attr id="operator" name="not_eq" value="29"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.a.com/index.htm&quot; );
url_view u1( &quot;http://www.b.com/index.htm&quot; );
assert( u0 != u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() != b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 != u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator!=" exception-spec="noexcept" id="NxK2yg1Y7T4SxurWSwoUG97wrN0=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1342" class="def"/>
        <attr id="operator" name="not_eq" value="29"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 != a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&lt;" exception-spec="noexcept" id="OVm8/SgmvpzcmT0wU0//KbTy63M=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="792" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="lt" value="30"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for less than</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is less than to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&lt;" exception-spec="noexcept" id="R4RSA/p1I3uroTWbOqtfvFR/cF0=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="775" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="lt" value="30"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for less than</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is less than to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator&lt;" exception-spec="noexcept" id="UbZF/ZfCDoPCOIiSZu6q2PC/Edk=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="759" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="lt" value="30"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for less than</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is less than to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;" exception-spec="noexcept" id="Si07vh35lnvnJy8tpXUIpiFEjGM=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2554" class="def"/>
        <attr id="operator" name="lt" value="30"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.a.com/index.htm&quot; );
url_view u1( &quot;http://www.b.com/index.htm&quot; );
assert( u0 &lt; u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() &lt; b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 &lt; u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator&lt;" exception-spec="noexcept" id="qFHmi5LkvIRpILiiWOHp9hOpYQA=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1366" class="def"/>
        <attr id="operator" name="lt" value="30"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 &lt; a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&lt;=" exception-spec="noexcept" id="bZeyA134srRl+e70k55k9xdabWM=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="859" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="le" value="31"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for less than or equal</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is less than or equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&lt;=" exception-spec="noexcept" id="4vZx12Tkx7fqOjRW/LuvhFPLbNQ=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="842" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="le" value="31"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for less than or equal</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is less than or equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator&lt;=" exception-spec="noexcept" id="DnQyjGJxZiJY8aCECV80mE2qduU=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="826" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="le" value="31"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for less than or equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is less than or equal to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator&lt;=" exception-spec="noexcept" id="rRCHC/6GEaVZrjzAeFDlvaCydi0=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2598" class="def"/>
        <attr id="operator" name="le" value="31"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.b.com/index.htm&quot; );
url_view u1( &quot;http://www.b.com/index.htm&quot; );
assert( u0 &lt;= u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() &lt;= b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 &lt;= u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator&lt;=" exception-spec="noexcept" id="F1TeTah5Uxojczk8Fz++HrM66vU=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1390" class="def"/>
        <attr id="operator" name="le" value="31"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 &lt;= a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&gt;" exception-spec="noexcept" id="B0rnFLRkOT6fyREi83RvdsGZIlQ=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="926" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="gt" value="32"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for greater than</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is greater than to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&gt;" exception-spec="noexcept" id="pRqLvkaFw0SG1RpbGWAKWhVi+kY=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="909" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="gt" value="32"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for greater than</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is greater than to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator&gt;" exception-spec="noexcept" id="Oc4RZ743cU0XGETas6CbQ6l8OeU=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="893" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="gt" value="32"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for greater than</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is greater than to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator&gt;" exception-spec="noexcept" id="ngGy21anUjaZiQQJidHT5lvOC2w=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2642" class="def"/>
        <attr id="operator" name="gt" value="32"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.b.com/index.htm&quot; );
url_view u1( &quot;http://www.a.com/index.htm&quot; );
assert( u0 &gt; u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() &gt; b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 &gt; u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator&gt;" exception-spec="noexcept" id="jlb8m5L+4Dp3wPZXOocje2gAGok=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1414" class="def"/>
        <attr id="operator" name="gt" value="32"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 &gt; a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&gt;=" exception-spec="noexcept" id="nFUncXFoKaz6GC1HbXnibuE8ezg=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="993" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="ge" value="33"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for greater than or equal</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is greater than or equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="S" class="type"/>
        <function name="operator&gt;=" exception-spec="noexcept" id="njx8Q7wnnD1jPqxCgk6VjUufNlY=">
          <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="976" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="ge" value="33"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="S" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Compare two decode views for greater than or equal</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if decoded </text>
              <mono>lhs</mono>
              <text> is greater than or equal to the decoded </text>
              <mono>rhs</mono>
            </returns>
            <param name="lhs">
              <text>The left-hand-side decode view to compare</text>
            </param>
            <param name="rhs">
              <text>The right-hand-side decode view to compare</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator&gt;=" exception-spec="noexcept" id="aAj/wyLdJMro0+uVDfExz9lDP2g=">
        <file short-path="boost/url/decode_view.hpp" source-path="include/boost/url/decode_view.hpp" line="960" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="ge" value="33"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="IhE/V16b2wBX2q+s4QtlgzozWlQ=" name="decode_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Compare two decode views for greater than or equal</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if decoded </text>
            <mono>lhs</mono>
            <text> is greater than or equal to the decoded </text>
            <mono>rhs</mono>
          </returns>
          <param name="lhs">
            <text>The left-hand-side decode view to compare</text>
          </param>
          <param name="rhs">
            <text>The right-hand-side decode view to compare</text>
          </param>
        </doc>
      </function>
      <function name="operator&gt;=" exception-spec="noexcept" id="AdXFp/RvPKHF4rljfa5/5yBmyfs=">
        <file short-path="boost/url/url_view_base.hpp" source-path="include/boost/url/url_view_base.hpp" line="2686" class="def"/>
        <attr id="operator" name="ge" value="33"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="u0">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="u1">
          <type class="lvalue-reference">
            <pointee-type id="UEVNhDEjkZMXfjN1DxbtX0n2rCg=" name="url_view_base" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two URLs</text>
          </brief>
          <para>
            <text>The URLs are compared component by component as if they were first normalized.</text>
          </para>
          <head>Example</head>
          <code>
            <text>url_view u0( &quot;http://www.a.com/index.htm&quot; );
url_view u1( &quot;http://www.a.com/index.htm&quot; );
assert( u0 &gt;= u1 );</text>
          </code>
          <head>Effects</head>
          <code>
            <text>url a(u0);
a.normalize();
url b(u1);
b.normalize();
return a.buffer() &gt;= b.buffer();</text>
          </code>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( u0.size(), u1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-6.2.2">6.2.2 Syntax-Based Normalization (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>u0 &gt;= u1</mono>
          </returns>
          <param name="u0">
            <text>The first url to compare</text>
          </param>
          <param name="u1">
            <text>The second url to compare</text>
          </param>
          <relates>
            <reference id="4HBDcnMjZthTXFnhpS7z+UhDNjA=">static_url</reference>
            <reference id="dmsqdje8dXFRFgNB9wxOs9Y5nb8=">static_url_base</reference>
            <reference id="B4dRaSXMG3fDmuNKMW3KOeRu6kA=">url</reference>
            <reference id="aHkFCWJbYb0t+7FT+A5gCI0krpU=">url_base</reference>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
          </relates>
        </doc>
      </function>
      <function name="operator&gt;=" exception-spec="noexcept" id="hFJopnR14fIqBpDu1GGpNyp3Y5c=">
        <file short-path="boost/url/authority_view.hpp" source-path="include/boost/url/authority_view.hpp" line="1438" class="def"/>
        <attr id="operator" name="ge" value="33"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a0">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="a1">
          <type class="lvalue-reference">
            <pointee-type id="d/hMlyyC3Ave6L9McUD7B4TwENA=" name="authority_view" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Return the result of comparing two authorities. The authorities are compared component by component as if they were first normalized.</text>
          </brief>
          <head>Complexity</head>
          <para>
            <text>Linear in </text>
            <mono>min( a0.size(), a1.size() )</mono>
          </para>
          <head>Exception Safety</head>
          <para>
            <text>Throws nothing</text>
          </para>
          <returns>
            <mono>true</mono>
            <text> if </text>
            <mono>a0 &gt;= a1</mono>
            <text>, otherwise </text>
            <mono>false</mono>
          </returns>
          <param name="a0">
            <text>The first authority to compare</text>
          </param>
          <param name="a1">
            <text>The second authority to compare</text>
          </param>
        </doc>
      </function>
      <variable name="absolute_uri_rule" id="4SGJz+AJ+UhdwU8wP3Xh11mlvBM=" default="{}">
        <file short-path="boost/url/rfc/absolute_uri_rule.hpp" source-path="include/boost/url/rfc/absolute_uri_rule.hpp" line="67" class="def"/>
        <attr id="is-inline"/>
        <attr id="is-constexpr"/>
        <type id="ULWu8e+1y5m/ZQncGkLNDTIjCng=" name="implementation_defined::absolute_uri_rule_t"/>
        <doc>
          <brief>
            <text>Rule for absolute-URI</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = url_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = grammar::parse( &quot;http://example.com/index.htm?id=1&quot;, absolute_uri_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>absolute-URI    = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ]

hier-part       = &quot;//&quot; authority path-abempty
                / path-absolute
                / path-rootless
                / path-empty</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.3">4.3. Absolute URI (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="U3CVElRbcTcbg1JzOqhBCd5RSzM=">parse_absolute_uri</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="authority_rule" id="kWc6VwnEqWA0KYFMRYavAgCCB4M=" default="{}">
        <file short-path="boost/url/rfc/authority_rule.hpp" source-path="include/boost/url/rfc/authority_rule.hpp" line="61" class="def"/>
        <attr id="is-constexpr"/>
        <type id="K+GE1hzkSGKOq3ThCLWBwd5DTuE=" name="implementation_defined::authority_rule_t"/>
        <doc>
          <brief>
            <text>Rule for authority</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = authority_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; authority_view &gt; rv = grammar::parse( &quot;user:pass@example.com:8080&quot;, authority_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>authority   = [ userinfo &quot;@&quot; ] host [ &quot;:&quot; port ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2">3.2. Authority (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="d/hMlyyC3Ave6L9McUD7B4TwENA=">authority_view</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="dl7C/yP8Suze9+hv0RfYWxZaWCY=">parse_authority</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="gen_delim_chars" id="M0EYo5t0pgHX2bya+60gL5gq8Mc=" default="&quot;:/?#[]@&quot;">
        <file short-path="boost/url/rfc/gen_delim_chars.hpp" source-path="include/boost/url/rfc/gen_delim_chars.hpp" line="44" class="def"/>
        <attr id="is-constexpr"/>
        <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="grammar::lut_chars"/>
        <doc>
          <brief>
            <text>The gen-delims character set</text>
          </brief>
          <head>Example</head>
          <para>
            <text>Character sets are used with rules and the functions </text>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text> and </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; decode_view &gt; rv = grammar::parse( &quot;Program%20Files&quot;, pct_encoded_rule( gen_delim_chars ) );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>gen-delims    = &quot;:&quot; / &quot;/&quot; / &quot;?&quot; / &quot;#&quot; / &quot;[&quot; / &quot;]&quot; / &quot;@&quot;</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.2">2.2. Reserved Characters (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text>, </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="ignore_case" id="y4Fn2Zc8bAvOrHSAL6ln/eSRNjo=" default="{}">
        <file short-path="boost/url/ignore_case.hpp" source-path="include/boost/url/ignore_case.hpp" line="29" class="def"/>
        <attr id="is-inline"/>
        <attr id="is-constexpr"/>
        <type id="X8bO9PzAZhZe4KoaCSz4/o1kias=" name="implementation_defined::ignore_case_t"/>
        <doc>
          <brief>
            <text>Ignore case when comparing</text>
          </brief>
          <para>
            <text>This value may be optionally passed to functions accepting a parameter of type </text>
            <reference id="RATceEbebMWrhFXGkG2RDFi+7WY=">ignore_case_param</reference>
            <text> to indicate that comparisons should be case-insensitive.</text>
          </para>
        </doc>
      </variable>
      <variable name="ipv4_address_rule" id="M9SQbDZx89d7w32vLj4LMkyNHYI=" default="{}">
        <file short-path="boost/url/rfc/ipv4_address_rule.hpp" source-path="include/boost/url/rfc/ipv4_address_rule.hpp" line="70" class="def"/>
        <attr id="is-constexpr"/>
        <type id="oNcW0Zh+zvzi9SUKiAhcndAKBL0=" name="implementation_defined::ipv4_address_rule_t"/>
        <doc>
          <brief>
            <text>Rule for an IP version 4 style address</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = ipv4_address;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; ipv4_address &gt; rv = grammar::parse( &quot;192.168.0.1&quot;, ipv4_address_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>IPv4address = dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet &quot;.&quot; dec-octet

dec-octet   = DIGIT                 ; 0-9
            / %x31-39 DIGIT         ; 10-99
            / &quot;1&quot; 2DIGIT            ; 100-199
            / &quot;2&quot; %x30-34 DIGIT     ; 200-249
            / &quot;25&quot; %x30-35          ; 250-255</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://en.wikipedia.org/wiki/IPv4">IPv4 (Wikipedia)</link>
            </listitem>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="/Wpp3ZZDp3kUHzbULeDoaOEhnVs=">ipv4_address</reference>
            <text>, </text>
            <reference id="3H1nFll3jIwKtiUjrAoL1itMXS8=">parse_ipv4_address</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="ipv6_address_rule" id="HNlbMWgGFyUa8zfk9rDcguyMilg=" default="{}">
        <file short-path="boost/url/rfc/ipv6_address_rule.hpp" source-path="include/boost/url/rfc/ipv6_address_rule.hpp" line="78" class="def"/>
        <attr id="is-constexpr"/>
        <type id="A26koPySRJKlDatdXQouZa07zD4=" name="implementation_defined::ipv6_address_rule_t"/>
        <doc>
          <brief>
            <text>Rule for An IP version 6 style address</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = ipv6_address;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; ipv6_address &gt; rv = grammar::parse( &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;, ipv6_address_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>IPv6address =                            6( h16 &quot;:&quot; ) ls32
            /                       &quot;::&quot; 5( h16 &quot;:&quot; ) ls32
            / [               h16 ] &quot;::&quot; 4( h16 &quot;:&quot; ) ls32
            / [ *1( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 3( h16 &quot;:&quot; ) ls32
            / [ *2( h16 &quot;:&quot; ) h16 ] &quot;::&quot; 2( h16 &quot;:&quot; ) ls32
            / [ *3( h16 &quot;:&quot; ) h16 ] &quot;::&quot;    h16 &quot;:&quot;   ls32
            / [ *4( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              ls32
            / [ *5( h16 &quot;:&quot; ) h16 ] &quot;::&quot;              h16
            / [ *6( h16 &quot;:&quot; ) h16 ] &quot;::&quot;

ls32        = ( h16 &quot;:&quot; h16 ) / IPv4address
            ; least-significant 32 bits of address

h16         = 1*4HEXDIG
            ; 16 bits of address represented in hexadecimal</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc4291">IP Version 6 Addressing Architecture (rfc4291)</link>
            </listitem>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2">3.2.2. Host (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="dhMSRVBIIIItY0URHSc8rwHcdTQ=">ipv6_address</reference>
            <text>, </text>
            <reference id="bEw/qaAlNfZy1QraETx5dipoF+I=">parse_ipv6_address</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="no_value" id="INQ2ouuVlRY3LsAsb8F4jYk7wBA=" default="{}">
        <file short-path="boost/url/param.hpp" source-path="include/boost/url/param.hpp" line="36" class="def"/>
        <attr id="is-constexpr"/>
        <type id="51rV2xfhRV96h9L23+q8lPiw4x8=" name="no_value_t"/>
        <doc>
          <brief>
            <text>Constant indicating no value in a param</text>
          </brief>
        </doc>
      </variable>
      <variable name="origin_form_rule" id="nz+wKEzMLKgYPZA/4y/jAJmzf6I=" default="{}">
        <file short-path="boost/url/rfc/origin_form_rule.hpp" source-path="include/boost/url/rfc/origin_form_rule.hpp" line="65" class="def"/>
        <attr id="is-inline"/>
        <attr id="is-constexpr"/>
        <type id="A87uUMvaeqqseND6B+bppJkjKco=" name="implementation_defined::origin_form_rule_t"/>
        <doc>
          <brief>
            <text>Rule for origin-form</text>
          </brief>
          <para>
            <text>This appears in the HTTP/1 request-line grammar.</text>
          </para>
          <head>Value Type</head>
          <code>
            <text>using value_type = url_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = grammar::parse( &quot;/index.htm?layout=mobile&quot;, origin_form_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>origin-form    = absolute-path [ &quot;?&quot; query ]

absolute-path = 1*( &quot;/&quot; segment )</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1">5.3.1.  origin-form (rfc7230)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="J4f05lEg7oi89R2SkpRaYiBhCIQ=">parse_origin_form</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="pchars" id="2V+Z9ecepqbZRna6GFcGry1dzDs=" default="unreserved_chars + sub_delim_chars + &apos;:&apos; + &apos;@&apos;">
        <file short-path="boost/url/rfc/pchars.hpp" source-path="include/boost/url/rfc/pchars.hpp" line="45" class="def"/>
        <attr id="is-constexpr"/>
        <type class="auto" keyword="auto">
        </type>
        <doc>
          <brief>
            <text>The path character set</text>
          </brief>
          <head>Example</head>
          <para>
            <text>Character sets are used with rules and the functions </text>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text> and </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; decode_view &gt; rv = grammar::parse( &quot;Program%20Files&quot;, pchars );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>pchar         = unreserved / pct-encoded / sub-delims / &quot;:&quot; / &quot;@&quot;</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.3">3.3. Path (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text>, </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="query_rule" id="6a/9GskAZnBXlwr4d3UtNR0aCNQ=" default="{}">
        <file short-path="boost/url/rfc/query_rule.hpp" source-path="include/boost/url/rfc/query_rule.hpp" line="70" class="def"/>
        <attr id="is-constexpr"/>
        <type id="6BnTFtZi8y58Qk6SU1LtvEpeCy0=" name="implementation_defined::query_rule_t"/>
        <doc>
          <brief>
            <text>Rule for a query string</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = params_encoded_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; params_encoded_view &gt; rv = grammar::parse( &quot;format=web&amp;id=42&amp;compact&quot;, query_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>query           = *( pchar / &quot;/&quot; / &quot;?&quot; )

query-params    = [ query-param ] *( &quot;&amp;&quot; query-param )
query-param     = key [ &quot;=&quot; value ]
key             = *qpchar
value           = *( qpchar / &quot;=&quot; )
qpchar          = unreserved
                / pct-encoded
                / &quot;!&quot; / &quot;$&quot; / &quot;&apos;&quot; / &quot;(&quot; / &quot;)&quot;
                / &quot;*&quot; / &quot;+&quot; / &quot;,&quot; / &quot;;&quot;
                / &quot;:&quot; / &quot;@&quot; / &quot;/&quot; / &quot;?&quot;</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4">3.4. Query (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="0nSfM4mK92fIx58KtzdWGiHuq2w=">params_encoded_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="relative_ref_rule" id="SMHCvo8zmYWXaMRwpIb2LkyRmJE=" default="{}">
        <file short-path="boost/url/rfc/relative_ref_rule.hpp" source-path="include/boost/url/rfc/relative_ref_rule.hpp" line="61" class="def"/>
        <attr id="is-constexpr"/>
        <type id="tojwBud9+1o/12apbTevwuH6eng=" name="implementation_defined::relative_ref_rule_t"/>
        <doc>
          <brief>
            <text>Rule for relative-ref</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = url_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = grammar::parse( &quot;images/dot.gif?v=hide#a&quot;, relative_ref_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">4.2. Relative Reference (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="QFzcl8vSLEeKOEO6w3mv1zGqX3k=">parse_relative_ref</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="reserved_chars" id="LHgNC6HzmNSmob+HNYbdFf3I/ss=" default="~unreserved_chars">
        <file short-path="boost/url/rfc/reserved_chars.hpp" source-path="include/boost/url/rfc/reserved_chars.hpp" line="39" class="def"/>
        <attr id="is-constexpr"/>
        <type class="auto" keyword="auto">
        </type>
        <doc>
          <brief>
            <text>The reserved character set</text>
          </brief>
          <head>Example</head>
          <para>
            <text>Character sets are used with rules and the functions </text>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text> and </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; decode_view &gt; rv = grammar::parse( &quot;Program%20Files&quot;, pct_encoded_rule( reserved_chars ) );</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.3">2.3. Unreserved Characters (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text>, </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="sub_delim_chars" id="W5ZnEm5Wr2aNUSnMwlBHGfqRHgY=" default="&quot;!$&amp;()*+,;=\x27&quot;">
        <file short-path="boost/url/rfc/sub_delim_chars.hpp" source-path="include/boost/url/rfc/sub_delim_chars.hpp" line="45" class="def"/>
        <attr id="is-constexpr"/>
        <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="grammar::lut_chars"/>
        <doc>
          <brief>
            <text>The sub-delims character set</text>
          </brief>
          <head>Example</head>
          <para>
            <text>Character sets are used with rules and the functions </text>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text> and </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; decode_view &gt; = grammar::parse( &quot;Program%20Files&quot;, pct_encoded_rule( sub_delim_chars ) );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>sub-delims    = &quot;!&quot; / &quot;$&quot; / &quot;&amp;&quot; / &quot;&apos;&quot; / &quot;(&quot; / &quot;)&quot;
              / &quot;*&quot; / &quot;+&quot; / &quot;,&quot; / &quot;;&quot; / &quot;=&quot;</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.2">2.2. Reserved Characters (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text>, </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="unreserved_chars" id="sPt+l16WQkJLiqM+m+B6d5s9eA0=" default="&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;
    &quot;abcdefghijklmnopqrstuvwxyz&quot;
    &quot;0123456789&quot;
    &quot;-._~&quot;">
        <file short-path="boost/url/rfc/unreserved_chars.hpp" source-path="include/boost/url/rfc/unreserved_chars.hpp" line="44" class="def"/>
        <attr id="is-constexpr"/>
        <type id="79IFwv0C40oPrhucou1uA6DC1RI=" name="grammar::lut_chars"/>
        <doc>
          <brief>
            <text>The unreserved character set</text>
          </brief>
          <head>Example</head>
          <para>
            <text>Character sets are used with rules and the functions </text>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text> and </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; decode_view &gt; rv = grammar::parse( &quot;Program%20Files&quot;, pct_encoded_rule( unreserved_chars ) );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>unreserved    = ALPHA / DIGIT / &quot;-&quot; / &quot;.&quot; / &quot;_&quot; / &quot;~&quot;</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-2.3">2.3. Unreserved Characters (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="tYu+dbhQn5Jt+oUv1QmBQz+Z4Mk=">grammar::find_if</reference>
            <text>, </text>
            <reference id="o4IF1hl0/rSoqWdSZjOKE4MHFjM=">grammar::find_if_not</reference>
            <text>, </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="tqgOJBBmkI71v1H8Vjo+5AjUBNk=">pct_encoded_rule</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="uri_reference_rule" id="S1qIdty2BzQiH3cIDwP1tc/RJzM=" default="{}">
        <file short-path="boost/url/rfc/uri_reference_rule.hpp" source-path="include/boost/url/rfc/uri_reference_rule.hpp" line="64" class="def"/>
        <attr id="is-constexpr"/>
        <type id="Xicirg+nwaf6LsTkCuUaRNAJdRU=" name="implementation_defined::uri_reference_rule_t"/>
        <doc>
          <brief>
            <text>Rule for URI-reference</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = url_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = grammar::parse( &quot;ws://echo.example.com/?name=boost#demo&quot;, uri_reference_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>URI-reference = URI / relative-ref

URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]
relative-ref  = relative-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3">3. Syntax Components (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="7d2b1xVBWJPgL/+PWFdoBaZJvMA=">parse_uri_reference</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
      <variable name="uri_rule" id="AL2wo0R+80Md4UIYeUHuHTClsvI=" default="{}">
        <file short-path="boost/url/rfc/uri_rule.hpp" source-path="include/boost/url/rfc/uri_rule.hpp" line="61" class="def"/>
        <attr id="is-constexpr"/>
        <type id="HtzG2IcqWtOoDM4HjT7YflVbDwI=" name="implementation_defined::uri_rule_t"/>
        <doc>
          <brief>
            <text>Rule for URI</text>
          </brief>
          <head>Value Type</head>
          <code>
            <text>using value_type = url_view;</text>
          </code>
          <head>Example</head>
          <para>
            <text>Rules are used with the function </text>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>.</text>
          </para>
          <code>
            <text>system::result&lt; url_view &gt; rv = grammar::parse( &quot;https://www.example.com/index.htm?id=guest#s1&quot;, uri_rule );</text>
          </code>
          <head>BNF</head>
          <code>
            <text>URI           = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]</text>
          </code>
          <head>Specification</head>
          <unorderedlist>
            <listitem>
              <link href="https://datatracker.ietf.org/doc/html/rfc3986#section-3">3. Syntax Components (rfc3986)</link>
            </listitem>
          </unorderedlist>
          <see>
            <reference id="laQxW+BBeJINbRrZtau+U15+v7c=">grammar::parse</reference>
            <text>, </text>
            <reference id="f+9kR517VGSM5ZPoS7g/RFb0g/0=">parse_uri</reference>
            <text>, </text>
            <reference id="wh3UbUToX9YDmRmnpcoM9EUEZo8=">url_view</reference>
            <text>.</text>
          </see>
        </doc>
      </variable>
    </namespace>
  </namespace>
</namespace>
</mrdocs>
