| Home | Libraries | People | FAQ | More

###### static_url::segments (1 of 2 overloads)

(Inherited from `url_base`)

Return the path as a container of segments.

###### Synopsis

    urls::segments_ref
    segments();

###### 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

    url u( "http://example.com/path/to/file.txt" );

    segments sv = u.segments();

###### Complexity

Constant.

###### Exception Safety

Throws nothing.

###### BNF

    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>

###### Specification

- 3.3. Path (rfc3986)

###### See Also

`encoded_segments`, `set_encoded_path`, `set_path`, `set_path_absolute`.