[#boost-urls-url_view] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::url_view :relfileprefix: ../../ :mrdocs: A non‐owning reference to a valid URL == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/url_view.hpp#L74[boost/url/url_view.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class url_view : public xref:boost/urls/url_view_base.adoc[url_view_base]; ---- == Member Functions [cols=2] |=== | Name | Description | xref:boost/urls/url_view_base/authority.adoc[`authority`] | Return the authority | xref:boost/urls/url_view_base/buffer.adoc[`buffer`] | Return the url string | xref:boost/urls/url_view_base/compare.adoc[`compare`] | Return the result of comparing this with another url | xref:boost/urls/url_view_base/data.adoc[`data`] | Return a pointer to the url's character buffer | xref:boost/urls/url_view_base/empty.adoc[`empty`] | Return true if the url is empty | xref:boost/urls/url_view_base/encoded_authority.adoc[`encoded_authority`] | Return the authority. | xref:boost/urls/url_view_base/encoded_fragment.adoc[`encoded_fragment`] | Return the fragment | xref:boost/urls/url_view_base/encoded_host.adoc[`encoded_host`] | Return the host | xref:boost/urls/url_view_base/encoded_host_address.adoc[`encoded_host_address`] | Return the host | xref:boost/urls/url_view_base/encoded_host_and_port.adoc[`encoded_host_and_port`] | Return the host and port | xref:boost/urls/url_view_base/encoded_host_name.adoc[`encoded_host_name`] | Return the host name | xref:boost/urls/url_view_base/encoded_origin.adoc[`encoded_origin`] | Return the origin | xref:boost/urls/url_view_base/encoded_params.adoc[`encoded_params`] | Return the query as a container of parameters | xref:boost/urls/url_view_base/encoded_password.adoc[`encoded_password`] | Return the password | xref:boost/urls/url_view_base/encoded_path.adoc[`encoded_path`] | Return the path | xref:boost/urls/url_view_base/encoded_query.adoc[`encoded_query`] | Return the query | xref:boost/urls/url_view_base/encoded_resource.adoc[`encoded_resource`] | Return the resource | xref:boost/urls/url_view_base/encoded_segments.adoc[`encoded_segments`] | Return the path as a container of segments | xref:boost/urls/url_view_base/encoded_target.adoc[`encoded_target`] | Return the target | xref:boost/urls/url_view_base/encoded_user.adoc[`encoded_user`] | Return the user | xref:boost/urls/url_view_base/encoded_userinfo.adoc[`encoded_userinfo`] | Return the userinfo | xref:boost/urls/url_view_base/encoded_zone_id.adoc[`encoded_zone_id`] | Return the IPv6 Zone ID | xref:boost/urls/url_view_base/fragment.adoc[`fragment`] | Return the fragment | xref:boost/urls/url_view_base/has_authority.adoc[`has_authority`] | Return true if an authority is present | xref:boost/urls/url_view_base/has_fragment.adoc[`has_fragment`] | Return true if a fragment is present | xref:boost/urls/url_view_base/has_password.adoc[`has_password`] | Return true if a password is present | xref:boost/urls/url_view_base/has_port.adoc[`has_port`] | Return true if a port is present | xref:boost/urls/url_view_base/has_query.adoc[`has_query`] | Return true if a query is present | xref:boost/urls/url_view_base/has_scheme.adoc[`has_scheme`] | Return true a scheme is present | xref:boost/urls/url_view_base/has_userinfo.adoc[`has_userinfo`] | Return true if a userinfo is present | xref:boost/urls/url_view_base/host.adoc[`host`] | Return the host | xref:boost/urls/url_view_base/host_address.adoc[`host_address`] | Return the host | xref:boost/urls/url_view_base/host_ipv4_address.adoc[`host_ipv4_address`] | Return the host IPv4 address | xref:boost/urls/url_view_base/host_ipv6_address.adoc[`host_ipv6_address`] | Return the host IPv6 address | xref:boost/urls/url_view_base/host_ipvfuture.adoc[`host_ipvfuture`] | Return the host IPvFuture address | xref:boost/urls/url_view_base/host_name.adoc[`host_name`] | Return the host name | xref:boost/urls/url_view_base/host_type.adoc[`host_type`] | Return the host type | xref:boost/urls/url_view_base/is_path_absolute.adoc[`is_path_absolute`] | Return true if the path is absolute | xref:boost/urls/url_view_base/2conversion.adoc[`operator core::string_view`] | Return the URL as a core::string_view | xref:boost/urls/url_view/operator_assign.adoc[`operator=`] | Assignment | xref:boost/urls/url_view_base/params.adoc[`params`] | Return the query as a container of parameters | xref:boost/urls/url_view_base/password.adoc[`password`] | Return the password | xref:boost/urls/url_view_base/path.adoc[`path`] | Return the path | xref:boost/urls/url_view_base/persist.adoc[`persist`] | Return a shared, persistent copy of the url | xref:boost/urls/url_view_base/port.adoc[`port`] | Return the port | xref:boost/urls/url_view_base/port_number.adoc[`port_number`] | Return the port | xref:boost/urls/url_view_base/query.adoc[`query`] | Return the query | xref:boost/urls/url_view_base/scheme.adoc[`scheme`] | Return the scheme | xref:boost/urls/url_view_base/scheme_id.adoc[`scheme_id`] | Return the scheme | xref:boost/urls/url_view_base/segments.adoc[`segments`] | Return the path as a container of segments | xref:boost/urls/url_view_base/size.adoc[`size`] | Return the number of characters in the url | xref:boost/urls/url_view/2constructor.adoc[`url_view`] [.small]#[constructor]# | Constructor xref:boost/urls/url_view/2constructor-00.adoc[url_view(core::string_view)] | xref:boost/urls/url_view_base/user.adoc[`user`] | Return the user | xref:boost/urls/url_view_base/userinfo.adoc[`userinfo`] | Return the userinfo | xref:boost/urls/url_view_base/zone_id.adoc[`zone_id`] | Return the IPv6 Zone ID | xref:boost/urls/url_view/2destructor.adoc[`~url_view`] [.small]#[destructor]# | Destructor |=== == Static Member Functions [cols=2] |=== | Name | Description | xref:boost/urls/url_view/max_size.adoc[`max_size`] | Return the maximum number of characters possible |=== == Friends [cols=2] |=== | Name | Description | xref:boost/urls/url_view_base/08friend-02.adoc[`operator!=`] | Return the result of comparing two URLs | xref:boost/urls/url_view_base/08friend-05.adoc[`operator<`] | Return the result of comparing two URLs | xref:boost/urls/url_view_base/08friend-0ff.adoc[`operator<<`] | Format the url to the output stream | xref:boost/urls/url_view_base/08friend-04a.adoc[`operator<=`] | Return the result of comparing two URLs | xref:boost/urls/url_view_base/08friend-07c.adoc[`operator==`] | Return the result of comparing two URLs | xref:boost/urls/url_view_base/08friend-073.adoc[`operator>`] | Return the result of comparing two URLs | xref:boost/urls/url_view_base/08friend-06.adoc[`operator>=`] | Return the result of comparing two URLs |=== == Protected Member Functions [cols=2] |=== | Name | Description | xref:boost/urls/url_view_base/digest.adoc[`digest`] | Calculate a hash of the url |=== == Description 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 `core::string_view` 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. === Example 1 Construction from a string parses the input as a _URI‐reference_ and throws an exception on error. Upon success, the constructed object points to the passed character buffer; ownership is not transferred. [,cpp] ---- url_view u( "https://www.example.com/index.htm?text=none#a1" ); ---- === Example 2 Parsing functions like xref:boost/urls/parse_uri_reference.adoc[parse_uri_reference] return a result containing either a valid xref:boost/urls/url_view/2constructor-00.adoc[url_view] upon succcess, otherwise they contain an error. The error can be converted to an exception by the caller if desired: [,cpp] ---- system::result< url_view > rv = parse_uri_reference( "https://www.example.com/index.htm?text=none#a1" ); ---- === BNF [,cpp] ---- URI-reference = URI / relative-ref URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] relative-ref = relative-part [ "?" query ] [ "#" fragment ] ---- === Specification * link:https://tools.ietf.org/html/rfc3986[Uniform Resource Identifier (URI): Generic Syntax (rfc3986)] A non‐owning reference to a valid URL 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 `core::string_view` 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. === Example 1 Construction from a string parses the input as a _URI‐reference_ and throws an exception on error. Upon success, the constructed object points to the passed character buffer; ownership is not transferred. [,cpp] ---- url_view u( "https://www.example.com/index.htm?text=none#a1" ); ---- === Example 2 Parsing functions like xref:boost/urls/parse_uri_reference.adoc[parse_uri_reference] return a result containing either a valid xref:boost/urls/url_view/2constructor-00.adoc[url_view] upon succcess, otherwise they contain an error. The error can be converted to an exception by the caller if desired: [,cpp] ---- system::result< url_view > rv = parse_uri_reference( "https://www.example.com/index.htm?text=none#a1" ); ---- === BNF [,cpp] ---- URI-reference = URI / relative-ref URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] relative-ref = relative-part [ "?" query ] [ "#" fragment ] ---- === Specification * link:https://tools.ietf.org/html/rfc3986[Uniform Resource Identifier (URI): Generic Syntax (rfc3986)] == See Also xref:boost/urls/parse_absolute_uri.adoc[parse_absolute_uri], xref:boost/urls/parse_origin_form.adoc[parse_origin_form], xref:boost/urls/parse_relative_ref.adoc[parse_relative_ref], xref:boost/urls/parse_uri.adoc[parse_uri], xref:boost/urls/parse_uri_reference.adoc[parse_uri_reference]. xref:boost/urls/parse_absolute_uri.adoc[parse_absolute_uri], xref:boost/urls/parse_origin_form.adoc[parse_origin_form], xref:boost/urls/parse_relative_ref.adoc[parse_relative_ref], xref:boost/urls/parse_uri.adoc[parse_uri], xref:boost/urls/parse_uri_reference.adoc[parse_uri_reference]. [.small]#Created with https://www.mrdocs.com[MrDocs]#