: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 `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/url_view.hpp#L74[boost/url/url_view.hpp,window=blank_]>`

[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/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-0f.adoc[`operator<<`]  ¦

Format the url to the output stream

¦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.

=== 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" );
----

=== 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" );
----
[,cpp]
----
URI-reference = URI / relative-ref

URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

relative-ref  = relative-part [ "?" query ] [ "#" fragment ]
----

* 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]
.



