| Home | Libraries | People | FAQ | More

#### parse_uri_reference

Return a reference to a parsed URL string.

##### Synopsis

Defined in header `<boost/url/parse.hpp>`

    system::result< url_view >
    parse_uri_reference(
        core::string_view s);

##### Description

This function parses a string according to the grammar below and returns a view referencing the passed string upon success, else returns an error. Ownership of the string is not transferred; the caller is responsible for ensuring that the lifetime of the character buffer extends until the view is no longer being accessed.

##### Example

    system::result< url_view > = parse_uri_reference( "ws://echo.example.com/?name=boost#demo" );

##### BNF

    URI-reference = URI / relative-ref

    URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

    relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

    hier-part     = "//" authority path-abempty
                  / path-absolute
                  / path-rootless
                  / path-empty

    relative-part = "//" authority path-abempty
                  / path-absolute
                  / path-noscheme
                  / path-abempty
                  / path-empty

##### Exceptions

Type | Thrown On
--- | ---
`std::length_error` | `s.size() > url_view::max_size`

##### Return Value

A `result` containing a value or an error

##### Parameters

Name | Description
--- | ---
`s` | The string to parse

##### Specification

- 4.1. URI Reference (rfc3986)
- Errata ID: 5428 (rfc3986)

##### See Also

`parse_absolute_uri`, `parse_origin_form`, `parse_relative_ref`, `parse_uri`, `url_view`.

Convenience header `<boost/url.hpp>`