| Home | Libraries | People | FAQ | More

##### http::ext_list::value_type

The type of each element in the list.

###### Synopsis

    using value_type = std::pair< string_view, param_list >;

###### Types

Name | Description
--- | ---
const_iterator | A constant iterator to the list.
value_type | The type of each element in the list.

###### Member Functions

Name | Description
--- | ---
begin | Return a const iterator to the beginning of the list.
cbegin | Return a const iterator to the beginning of the list.
cend | Return a const iterator to the end of the list.
end | Return a const iterator to the end of the list.
param_list | Default constructor. — Construct a list.

This container allows iteration of the parameter list in an HTTP extension. The parameter list is a series of name/value pairs with each pair starting with a semicolon. The value is optional.

If a parsing error is encountered while iterating the string, the behavior of the container will be as if a string containing only characters up to but excluding the first invalid character was used to construct the list.

###### BNF

    param-list  = *( OWS ";" OWS param )
    param       = token OWS [ "=" OWS ( token / quoted- string ) ]

To use this class, construct with the string to be parsed and then use `begin` and `end`, or range-for to iterate each item:

###### Example

    for ( auto const & param : param_list{ ";level=9;no_context_takeover;bits=15" })
    {
        std::cout << ";" << param.first;
        if (! param.second.empty())
            std::cout << "=" << param.second;
        std::cout << "\n" ;
    }

###### Description

The first element of the pair is the extension token, and the second element of the pair is an iterable container holding the extension's name/value parameters.