std::is_move_constructible in C++ with Examples
The std::is_move_constructible template of C++ STL is present in the <type_traits> header file. The std::is_move_constructible template of C++ STL is used to check whether the T is move constructible (that can be constructed from an rvalue reference of its type) or not. It returns the boolean value either true or false.
Header File:
#include<type_traits>
Template Class:
template< class T > struct is_move_convertible;
Syntax:
std::is_move_constructible< datatype >::value << '\n'
Parameters: The template std::is_move_constructible accepts a single parameter T (Trait class) to check whether T is move constructible type or not.
Return Value:
- True: If a given data type T is is_move_constructible.
- False: If a given data type T is not is_move_constructible.
Below is the program to demonstrate std::is_move_constructible:
Program:
// C++ program to illustrate // std::is_move_constructible #include <bits/stdc++.h> #include <type_traits> using namespace std; // Declare structures struct B { }; struct A { A& operator=(A&) = delete ; }; class C { int n; C(C&&) = default ; }; class D { D( const D&) {} }; // Driver Code int main() { cout << boolalpha; // Check if char is move constructible or not cout << "char: " << is_move_constructible< char >::value << endl; // Check if struct A is move constructible or not cout << "struct A: " << is_move_constructible<A>::value << endl; // Check if struct B is move constructible or not cout << "struct B: " << is_move_constructible<B>::value << endl; // Check if class C is move constructible or not cout << "class C: " << is_move_constructible<C>::value << endl; // Check if class D is move constructible or not cout << "class D: " << is_move_constructible<D>::value << endl; return 0; } |
Output:
char: true struct A: true struct B: true class C: false class D: false
Reference: http://www.cplusplus.com/reference/type_traits/is_move_constructible/
Please Login to comment...