:relfileprefix: ../../../
[#boost-urls-string_token-arg]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/string_token.adoc[pass:[string_token]]::arg


Base class for string tokens, and algorithm parameters


=== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/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,separator=¦]
|===
¦Name ¦Description
¦xref:boost/urls/string_token/arg/2constructor.adoc[`arg`] [.small]#[constructor]# ¦

Default constructor


Default move constructor


Deleted copy constructor

¦xref:boost/urls/string_token/arg/operator_assign.adoc[`operator=`]  ¦

Deleted copy assignment


Deleted move assignment

¦xref:boost/urls/string_token/arg/prepare.adoc[`prepare`]  ¦

Return a modifiable character buffer

¦xref:boost/urls/string_token/arg/2destructor.adoc[`~arg`] [.small]#[destructor]# ¦

Virtual destructor

|===

=== Description


This abstract interface provides a means
for an algorithm to generically obtain a
modifiable, contiguous character buffer
of prescribed size. As the author of an
algorithm simply declare an rvalue
reference as a parameter type.




Instances of this type are intended only
to be used once and then destroyed.

=== The declared function accepts any

temporary instance of `arg` to be
used for writing:
[,cpp]
----
void algorithm( string_token::arg&& dest );
----

To implement the interface for your type
or use-case, derive from the class and
implement the prepare function.



