:relfileprefix: ../../ [#boost-urls-url_view] = xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::url_view A non-owning reference to a valid URL == Synopsis Declared in header `` [source,cpp,subs="verbatim,macros,-callouts"] ---- class url_view : public xref:boost/urls/url_view_base.adoc[url_view_base]; ---- == Member Functions [cols=2,separator=¦] |=== ¦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/digest.adoc[`digest`] ¦ ¦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_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,separator=¦] |=== ¦Name ¦Description ¦xref:boost/urls/url_view_base/max_size.adoc[`max_size`] ¦ Return the maximum number of characters possible |=== == Friends [cols=2,separator=¦] |=== ¦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-03.adoc[`operator<<`] ¦ ¦xref:boost/urls/url_view_base/08friend-04.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 |=== == 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-0c.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] .