//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// type_traits
// is_empty
#include<type_traits>template<classT>voidtest_is_empty(){static_assert(std::is_empty<T>::value,"");static_assert(std::is_empty<constT>::value,"");static_assert(std::is_empty<volatileT>::value,"");static_assert(std::is_empty<constvolatileT>::value,"");}template<classT>voidtest_is_not_empty(){static_assert(!std::is_empty<T>::value,"");static_assert(!std::is_empty<constT>::value,"");static_assert(!std::is_empty<volatileT>::value,"");static_assert(!std::is_empty<constvolatileT>::value,"");}classEmpty{};classNotEmpty{virtual~NotEmpty();};unionUnion{};structbit_zero{int:0;};intmain(){test_is_not_empty<void>();test_is_not_empty<int&>();test_is_not_empty<int>();test_is_not_empty<double>();test_is_not_empty<int*>();test_is_not_empty<constint*>();test_is_not_empty<char[3]>();test_is_not_empty<char[3]>();test_is_not_empty<Union>();test_is_not_empty<NotEmpty>();test_is_empty<Empty>();test_is_empty<bit_zero>();}