:relfileprefix: ../../../
[#boost-urls-url_base-encoded_segments]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/url_base.adoc[pass:[url_base]]::encoded_segments

  


Return the path as a container of segments



=== Synopsis
  

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:boost/urls/segments_encoded_ref.adoc[segments_encoded_ref]
xref:boost/urls/url_base/encoded_segments-0e8.adoc[pass:[encoded_segments]]() noexcept;
----

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:boost/urls/segments_encoded_view.adoc[segments_encoded_view]
xref:boost/urls/url_base/encoded_segments-0e5.adoc[pass:[encoded_segments]]() const noexcept;
----
  
=== Description


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.
[,cpp]
----
url u( "http://example.com/path/to/file.txt" );

segments_encoded_ref sv = u.encoded_segments();
----

=== Constant.

=== Throws nothing.
[,cpp]
----
path          = path-abempty    ; begins with "/" or is empty
              / path-absolute   ; begins with "/" but not "//"
              / path-noscheme   ; begins with a non-colon segment
              / path-rootless   ; begins with a segment
              / path-empty      ; zero characters

path-abempty  = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty    = 0<pchar>
----

* link:https://datatracker.ietf.org/doc/html/rfc3986#section-3.3[3.3.  Path (rfc3986)]







=== See Also


xref:boost/urls/url_base/encoded_segments-0e5.adoc[encoded_segments]
,
xref:boost/urls/url_base/set_encoded_path.adoc[set_encoded_path]
,
xref:boost/urls/url_base/set_path.adoc[set_path]
,
xref:boost/urls/url_base/set_path_absolute.adoc[set_path_absolute]
.


