:relfileprefix: ../../../
[#FCCB394C4ED4B2BD2FCB3588A5B896C308C79AC4]

= Class arg

pass:v,q[Base class for string tokens, and algorithm parameters]


== Synopsis

Declared in header `</boost/url/grammar/string_token.hpp#L49[boost/url/grammar/string_token.hpp,window=blank_]>`

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

==  Member Functions
[,cols=2]
|===
|Name |Description
|xref:boost/urls/string_token/arg/2constructor.adoc[`pass:v[arg]`] |
|xref:boost/urls/string_token/arg/operator_assign.adoc[`pass:v[operator=]`] |
|xref:boost/urls/string_token/arg/prepare.adoc[`pass:v[prepare]`] |
pass:v,q[Return a modifiable character buffer]

|xref:boost/urls/string_token/arg/2destructor.adoc[`pass:v[~arg]`] |

|===

== Description

pass:v,q[This abstract interface provides a means] pass:v,q[for an algorithm to generically obtain a]
pass:v,q[modifiable, contiguous character buffer]
pass:v,q[of prescribed size. As the author of an]
pass:v,q[algorithm simply declare an rvalue]
pass:v,q[reference as a parameter type.]
pass:v,q[Instances of this type are intended only]
pass:v,q[to be used once and then destroyed.]

=== Example
pass:v,q[The declared function accepts any]
pass:v,q[temporary instance of `arg` to be]
pass:v,q[used for writing:]
[,cpp]
----
void algorithm( string_token::arg&& dest );
----
pass:v,q[To implement the interface for your type]
pass:v,q[or use-case, derive from the class and]
pass:v,q[implement the prepare function.]



