[#BloombergLP-bslma-AllocatorTraits_HasSelectOnCopyMethod]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::AllocatorTraits&lowbar;HasSelectOnCopyMethod
:relfileprefix: ../../
:mrdocs:

Metafunction detecting `select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction`&period;

== Synopsis

Declared in `&lt;bslma&lowbar;allocatortraits&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ALLOCATOR&lowbar;TYPE&gt;
struct AllocatorTraits&lowbar;HasSelectOnCopyMethod;
----

== Description

This `struct` template provides a mechanism for determining whether a given (template parameter) `ALLOCATOR&lowbar;TYPE` defines a `const` member function named `select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction` that takes no arguments and returns an `ALLOCATOR&lowbar;TYPE` object by value&period; The static boolean `value` (nested `type` alias) is `true` (`bsl&colon;&colon;true&lowbar;type`) if `ALLOCATOR&lowbar;TYPE` defines such a method, and `false` (`bsl&colon;&colon;false&lowbar;type`) otherwise&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/AllocatorTraits_HasSelectOnCopyMethod/type.adoc[`type`] 
| `integral&lowbar;constant` for whether `ALLOCATOR&lowbar;TYPE` defines `select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction`&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslma/AllocatorTraits_HasSelectOnCopyMethod/value.adoc[`value`] 
| `true` if `ALLOCATOR&lowbar;TYPE` defines a `select&lowbar;on&lowbar;container&lowbar;copy&lowbar;construction` method&period;
|===



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