//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// type_traits
// is_same
#include<type_traits>template<classT,classU>voidtest_is_same(){static_assert((std::is_same<T,U>::value),"");static_assert((!std::is_same<constT,U>::value),"");static_assert((!std::is_same<T,constU>::value),"");static_assert((std::is_same<constT,constU>::value),"");}template<classT,classU>voidtest_is_same_ref(){static_assert((std::is_same<T,U>::value),"");static_assert((std::is_same<constT,U>::value),"");static_assert((std::is_same<T,constU>::value),"");static_assert((std::is_same<constT,constU>::value),"");}template<classT,classU>voidtest_is_not_same(){static_assert((!std::is_same<T,U>::value),"");}classClass{public:~Class();};intmain(){test_is_same<int,int>();test_is_same<void,void>();test_is_same<Class,Class>();test_is_same<int*,int*>();test_is_same_ref<int&,int&>();test_is_not_same<int,void>();test_is_not_same<void,Class>();test_is_not_same<Class,int*>();test_is_not_same<int*,int&>();test_is_not_same<int&,int>();}