[#boost-urls-param_pct_view-2constructor-05] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/param_pct_view.adoc[param_pct_view]::param_pct_view :relfileprefix: ../../../ :mrdocs: Constructor == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/param.hpp#L810[boost/url/param.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class OptionalString> param_pct_view( xref:boost/urls/pct_string_view.adoc[pct_string_view] key, OptionalString const& value); ---- == Description This constructs a parameter with a key and optional value, which may both contain percent escapes. The new key and value reference the same corresponding underlying character buffers. Ownership of the buffers is not transferred; the caller is responsible for ensuring that the assigned buffers remain valid until they are no longer referenced. == Example [,cpp] ---- param_pct_view qp( "key", optional("value") ); ---- == Postconditions [,cpp] ---- this->key.data() == key.data() && this->value->data() == value->data() && this->has_value == true ---- == Complexity Linear in `key.size() + value‐>size()`. == Exception Safety Exceptions thrown on invalid input. == Exceptions [cols=2] |=== | Name | Thrown on | `system_error` | `key` or `value` contains an invalid percent‐encoding. |=== == Return Value A param object == Template Parameters [cols=2] |=== | Name | Description | *OptionalString* | An optional `core::string_view` type, such as `boost::optional<core::string_view>` or `std::optional<core::string_view>`. |=== == Parameters [cols=2] |=== | Name | Description | *key* | The key to set. | *value* | The optional value to set. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#