[#BloombergLP-bslmf-IsTriviallyCopyable_DetectTrait-09]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsTriviallyCopyable&lowbar;DetectTrait
:relfileprefix: ../../
:mrdocs:

This `struct` template detects whether `t&lowbar;TYPE` is tagged as trivially copyable&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;TYPE,
    bool t&lowbar;K&lowbar;INTRINSIC = false&gt;
struct IsTriviallyCopyable&lowbar;DetectTrait
    : DetectNestedTrait&lt;t&lowbar;TYPE, is&lowbar;trivially&lowbar;copyable&gt;::type
----

== Description

This `struct` template implements a meta&hyphen;function to determine whether the (non&hyphen;cv&hyphen;qualified) (template parameter) `t&lowbar;TYPE` has been explicitly tagged with the trivially copyable trait&period; If the flag `t&lowbar;K&lowbar;INTRINSIC` is `true` then the compiler has already determined that `t&lowbar;TYPE` is trivially copyable without user intervention, and the check for nested traits can be optimized away&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `DetectNestedTrait&lt;t&lowbar;TYPE, is&lowbar;trivially&lowbar;copyable&gt;::type`
| 
|===

== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/IsTriviallyCopyable_DetectTrait-03.adoc[`IsTriviallyCopyable&lowbar;DetectTrait&lt;t&lowbar;TYPE, true&gt;`] 
| This `struct` template implements a meta&hyphen;function to determine whether the (non&hyphen;cv&hyphen;qualified) (template parameter) `t&lowbar;TYPE` is trivially copyable&period;
|===



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