[#boost-urls-string_token-arg]
= xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/string_token.adoc[string&lowbar;token]::arg
:relfileprefix: ../../../
:mrdocs:

Base class for string tokens, and algorithm parameters

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/grammar/string_token.hpp#L51[boost&sol;url&sol;grammar&sol;string&lowbar;token&period;hpp]&gt;`

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

== Member Functions

[cols=2]
|===
| Name
| Description
| xref:boost/urls/string_token/arg/2constructor-06.adoc[`arg`]         [.small]#[constructor]#
| Constructors
| xref:boost/urls/string_token/arg/2destructor.adoc[`&#126;arg`] [.small]#[destructor]# [.small]#[virtual]#
| Virtual destructor
| xref:boost/urls/string_token/arg/operator_assign-08.adoc[`operator&equals;`]  [.small]#[deleted]#
| Assignment operators
| xref:boost/urls/string_token/arg/prepare.adoc[`prepare`]  [.small]#[virtual]#
| Return a modifiable character buffer
|===

== Description

This abstract interface provides a means for an algorithm to generically obtain a modifiable, contiguous character buffer of prescribed size&period;

A xref:boost/urls/string_token/StringToken.adoc[`StringToken`] should be derived from this class&period; As the author of an algorithm using a xref:boost/urls/string_token/StringToken.adoc[`StringToken`], simply declare an rvalue reference as a parameter type&period;

Instances of this type are intended only to be used once and then destroyed&period;

== Example

The declared function accepts any temporary instance of `arg` to be used for writing&colon;

[,cpp]
----
void algorithm( string_token::arg&& dest );
----
To implement the interface for your type or use&hyphen;case, derive from the class and implement the prepare function&period;


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