:relfileprefix: ../../../
[#boost-urls-param_pct_view-2constructor-03]

= xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/param_pct_view.adoc[pass:[param_pct_view]]::param_pct_view


Construction


== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/param.hpp#L816[boost/url/param.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
explicit
param_pct_view(xref:boost/urls/param_view.adoc[param_view] const& p);
----

== Description


This converts a param which may
contain unvalidated percent-escapes into
a param whose key and value are
guaranteed to contain strings with no
invalid percent-escapes, otherwise
an exception is thrown.

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( param_view( "key", "value" ) );
----

=== Complexity

Linear in `key.size() + value.size()`.

=== Exception Safety

Exceptions thrown on invalid input.



== Exceptions

|===
| Name | Thrown on

| `system_error`
| 
`key` or `value` contains an invalid percent escape.

|===



== Parameters

|===
| Name | Description 

| *p*
| 
The param to construct from.

|===




