...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A list of extensions in a comma separated HTTP field value.
Defined in header <boost/beast/http/rfc7230.hpp>
class ext_list
Name |
Description |
---|---|
A constant iterator to the list. |
|
The type of each element in the list. |
Name |
Description |
---|---|
Return a const iterator to the beginning of the list. |
|
Return a const iterator to the beginning of the list. |
|
Return a const iterator to the end of the list. |
|
Return a const iterator to the end of the list. |
|
Return |
|
ext_list [constructor] |
Construct a list. |
Find a token in the list. |
This container allows iteration of the extensions in an HTTP field value. The extension list is a comma separated list of token parameter list pairs.
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.
ext-list = *( "," OWS ) ext *( OWS "," [ OWS ext ] ) ext = token param-list 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:
for ( auto const & ext : ext_list{ "none, 7z;level=9, zip;no_context_takeover;bits=15" }) { std::cout << ext.first << "\n" ; for ( auto const & param : ext.second) { std::cout << ";" << param.first; if (! param.second.empty()) std::cout << "=" << param.second; std::cout << "\n" ; } }