[#BloombergLP-bslmf-SelectTraitCase]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::SelectTraitCase
:relfileprefix: ../../
:mrdocs:

This template expresses a class that is unique for the specified (template parameter) `t&lowbar;TRAIT` metafunction&period; An instantiation of this template is the &quot;compile&hyphen;time return value&quot; of `SelectTrait` (see below)&period; `SelectTraitCase` acts as a sort of compile&hyphen;time pointer&hyphen;to&hyphen;metafunction that holds the identity of a metafunction similar to the way a pointer&hyphen;to&hyphen;function holds (at run&hyphen;time) the identity of a function&period; As in the pointer&hyphen;to&hyphen;function case, a `SelectTraitCase` can also be used indirectly to evaluate `t&lowbar;TRAIT` (at compile time)&period; Also note that, when `SelectTraitCase` is specialized with the default `t&lowbar;TRAIT` type parameter, `SelectTrait&lowbar;False`, it essentially means that none of the traits specified to `SelectTrait` match&period;

== Synopsis

Declared in `&lt;bslmf&lowbar;selecttrait&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;template&lt;class&gt; typename t&lowbar;TRAIT = SelectTrait&lowbar;False&gt;
struct SelectTraitCase;
----

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/SelectTraitCase/Eval.adoc[`Eval`] 
| Evaluates `t&lowbar;TRAIT` for the specified (template parameter) `T` type&period; The resulting `Eval&lt;T&gt;` instantiation is derived from `true&lowbar;type` if `t&lowbar;TRAIT&lt;T&gt;` is derived from `true&lowbar;type` and `false&lowbar;type` if `t&lowbar;TRAIT&lt;T&gt;` is derived from `false&lowbar;type`&period; (More generally, `Eval&lt;T&gt;` is derived from `t&lowbar;TRAIT&lt;T&gt;&colon;&colon;type`&period;)
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/SelectTraitCase/Type.adoc[`Type`] 
| Alias for the selected trait case type&period;
|===



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