Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
static_url_base::set_path

(Inherited from url_base)

Set the path.

Synopsis
url_base&
set_path(
    core::string_view s);
Description

This function sets the path to the string, which may be empty. Reserved characters in the string are percent-escaped in the result.

Remarks

The library may adjust the final result to ensure that no other parts of the url is semantically affected.

Remarks

This function does not encode '' chars, which are unreserved for paths but reserved for path segments. If a path segment should include encoded ''s to differentiate it from path separators, the functions set_encoded_path or segments should be used instead.

Example
url u( "http://www.example.com" );

u.set_path( "path/to/file.txt" );

assert( u.path() == "/path/to/file.txt" );
Complexity

Linear in this->size() + s.size().

Exception Safety

Strong guarantee. Calls to allocate may throw.

Parameters

Name

Description

s

The string to set.

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
See Also

encoded_segments, segments, set_encoded_path, set_path_absolute.


PrevUpHomeNext