[#boost-urls-url_base-segments-0e] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/url_base.adoc[url_base]::segments :relfileprefix: ../../../ :mrdocs: Return the path as a container of segments == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/url_base.hpp#L1895[boost/url/url_base.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:boost/urls/segments_ref.adoc[urls::segments_ref] segments() 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. 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. == Example [,cpp] ---- url u( "http://example.com/path/to/file.txt" ); segments sv = u.segments(); ---- == Complexity Constant. == Exception Safety Throws nothing. == BNF [,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 ---- == Specification * https://datatracker.ietf.org/doc/html/rfc3986#section-3.3[] == Return Value `*this` == See Also xref:boost/urls/url_base/encoded_segments-0a.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`]. [.small]#Created with https://www.mrdocs.com[MrDocs]#