[#boost-urls-param]
= xref:boost/urls/param.adoc[boost::urls::param]
:relfileprefix: ../../
:mrdocs:

A query parameter

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/param.hpp#L75[boost&sol;url&sol;param&period;hpp]&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct param;
----

== Member Functions

[cols=2]
|===
| Name
| Description
| xref:boost/urls/param/2constructor-04.adoc[`param`]         [.small]#[constructor]#
| Constructors
| xref:boost/urls/param/operator_assign-0b2.adoc[`operator&equals;`] 
| Assignment
| xref:boost/urls/param/operator_ptr.adoc[`operator&hyphen;&gt;`] 
| Arrow support
|===

== Data Members

[cols=2]
|===
| Name
| Description
| xref:boost/urls/param/has_value.adoc[`has&lowbar;value`] 
| True if a value is present
| xref:boost/urls/param/key.adoc[`key`] 
| The key
| xref:boost/urls/param/value.adoc[`value`] 
| The value
|===

== Description

Objects of this type represent a single key and value pair in a query string where a key is always present and may be empty, while the presence of a value is indicated by xref:boost/urls/param/has_value.adoc[`has&lowbar;value`] equal to true&period; An empty value is distinct from no value&period;

Depending on where the object was obtained, the strings may or may not contain percent escapes&period;

For most usages, key comparisons are case&hyphen;sensitive and duplicate keys in a query are possible&period; However, it is the authority that has final control over how the query is interpreted&period;

== BNF
[,cpp]
----
query-params    = query-param *( "&" query-param )
query-param     = key [ "=" value ]
key             = *qpchar
value           = *( qpchar / "=" )
----
== Specification
* https://en.wikipedia.org/wiki/Query_string[]

== See Also

xref:boost/urls/param_view.adoc[`param&lowbar;view`], xref:boost/urls/param_pct_view.adoc[`param&lowbar;pct&lowbar;view`]&period;


[.small]#Created with https://www.mrdocs.com[MrDocs]#
