is_move_assignable.pass.cpp revision 6063ec176d5056683d6ddd310c2e3a8f1c7e1b46
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// type_traits 11 12// is_move_assignable 13 14#include <type_traits> 15 16class Empty 17{ 18}; 19 20class NotEmpty 21{ 22public: 23 virtual ~NotEmpty(); 24}; 25 26union Union {}; 27 28struct bit_zero 29{ 30 int : 0; 31}; 32 33struct A 34{ 35 A(); 36}; 37 38int main() 39{ 40 static_assert(( std::is_move_assignable<int>::value), ""); 41 static_assert((!std::is_move_assignable<const int>::value), ""); 42 static_assert((!std::is_move_assignable<int[]>::value), ""); 43 static_assert((!std::is_move_assignable<int[3]>::value), ""); 44 static_assert((!std::is_move_assignable<int[3]>::value), ""); 45 static_assert((!std::is_move_assignable<void>::value), ""); 46 static_assert(( std::is_move_assignable<A>::value), ""); 47 static_assert(( std::is_move_assignable<bit_zero>::value), ""); 48 static_assert(( std::is_move_assignable<Union>::value), ""); 49 static_assert(( std::is_move_assignable<NotEmpty>::value), ""); 50 static_assert(( std::is_move_assignable<Empty>::value), ""); 51} 52