[#bsl-is_nothrow_move_constructible]
= xref:bsl.adoc[bsl]::is&lowbar;nothrow&lowbar;move&lowbar;constructible
:relfileprefix: ../
:mrdocs:

Metafunction to determine whether a type has a no&hyphen;throw move constructor&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
struct is&lowbar;nothrow&lowbar;move&lowbar;constructible
    : &sol;&ast; implementation-defined &ast;&sol;::type
----

== Description

This `struct` template implements a metafunction to determine whether the (template parameter) `t&lowbar;TYPE` has a no&hyphen;throw move constructor&period; This `struct` derives from `bsl&colon;&colon;true&lowbar;type` if the `t&lowbar;TYPE` has a no&hyphen;throw move constructor, and from `bsl&colon;&colon;false&lowbar;type` otherwise&period; This metafunction has the same syntax as the `is&lowbar;nothrow&lowbar;move&lowbar;constructible` metafunction defined in the C&plus;&plus;11 standard &lsqb;meta&period;unary&period;prop&rsqb;&semi; on C&plus;&plus;03 platforms, however, this metafunction can automatically determine the value for trivially copyable types (including scalar types), for reference types, and for class types associating with the `bsl&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible` trait using the `BSLMF&lowbar;NESTED&lowbar;TRAIT&lowbar;DECLARATION` macro&period; To support other no&hyphen;throw move constructible types, this template should be specialized to inherit from `bsl&colon;&colon;true&lowbar;type`&period; Note that cv&hyphen;qualified user defined types are rarely no&hyphen;throw move constructible unless they are also trivially copyable, so there are no cv&hyphen;qualified partial specializations of this trait&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `&sol;&ast; implementation-defined &ast;&sol;::type`
| 
|===


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