[#boost-urls-segments_view-2constructor-0e]
= xref:boost/urls/segments_view/2constructor-0e.adoc[boost::urls::segments&lowbar;view::segments&lowbar;view]
:relfileprefix: ../../../
:mrdocs:

Constructor

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/segments_view.hpp#L165[boost&sol;url&sol;segments&lowbar;view&period;hpp]&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
segments&lowbar;view(core::string&lowbar;view s);
----

== Description

This function constructs segments from a valid path string, which can contain percent escapes&period; Upon construction, the view references the character buffer pointed to by `s`&period; caller is responsible for ensuring that the lifetime of the buffer extends until the view is destroyed&period;

== Example
[,cpp]
----
segments_view ps( "/path/to/file.txt" );
----
== Effects
[,cpp]
----
return parse_path( s ).value();
----
== Postconditions
[,cpp]
----
this->buffer().data() == s.data()
----
== Complexity
Linear in `s`&period;

== Exception Safety
Exceptions thrown on invalid input&period;

== BNF
[,cpp]
----
path = [ "/" ] [ segment *( "/" segment ) ]

segment = *pchar
----
== Specification
* https://datatracker.ietf.org/doc/html/rfc3986#section-3.3[]

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `system&lowbar;error`
| `s` contains an invalid path&period;
|===

== Parameters

[cols=2]
|===
| Name
| Description
| *s*
| The string to parse&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
