[#bsl-basic_string-07a]
= xref:bsl.adoc[bsl]::xref:bsl/basic_string-0faf.adoc[basic&lowbar;string&lt;CHAR&lowbar;TYPE, char&lowbar;traits&lt;CHAR&lowbar;TYPE&gt;, ALLOCATOR&gt;]
:relfileprefix: ../
:mrdocs:

Deduce template arguments for `basic&lowbar;string` from constructor arguments&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;string&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class INPUT&lowbar;ITER,
    class CHAR&lowbar;TYPE = xref:BloombergLP/bslstl/IteratorUtil/IterVal_t.adoc[BloombergLP::bslstl::IteratorUtil::IterVal&lowbar;t&lt;INPUT&lowbar;ITER&gt;],
    class ALLOCATOR = xref:bsl/allocator-0df.adoc[bsl::allocator&lt;CHAR&lowbar;TYPE&gt;]&gt;
requires bsl&colon;&colon;IsStdAllocator&lowbar;v&lt;ALLOCATOR&gt;
xref:bsl/basic_string-0faf.adoc[basic&lowbar;string&lt;CHAR&lowbar;TYPE, char&lowbar;traits&lt;CHAR&lowbar;TYPE&gt;, ALLOCATOR&gt;](
    INPUT&lowbar;ITER,
    INPUT&lowbar;ITER,
    ALLOCATOR) -> xref:bsl/basic_string-0faf.adoc[basic&lowbar;string&lt;CHAR&lowbar;TYPE, char&lowbar;traits&lt;CHAR&lowbar;TYPE&gt;, ALLOCATOR&gt;];
----

== Description

Deduce the template parameter `CHAR&lowbar;TYPE` from the `value&lowbar;type` of the iterators passed to passed to the constructor of `basic&lowbar;string`&period; Deduce the template parameter `ALLOCATOR` from the optional argument passed to the constructor&period; This deduction guide does not participate unless the specified `ALLOCATOR` meets the requirements of a standard allocator&period;


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