//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// type_traits
// make_signed
#include<type_traits>enumEnum{zero,one_};enumBigEnum{bzero,big=0xFFFFFFFFFFFFFFFFULL};intmain(){static_assert((std::is_same<std::make_signed<signedchar>::type,signedchar>::value),"");static_assert((std::is_same<std::make_signed<unsignedchar>::type,signedchar>::value),"");static_assert((std::is_same<std::make_signed<char>::type,signedchar>::value),"");static_assert((std::is_same<std::make_signed<short>::type,signedshort>::value),"");static_assert((std::is_same<std::make_signed<unsignedshort>::type,signedshort>::value),"");static_assert((std::is_same<std::make_signed<int>::type,signedint>::value),"");static_assert((std::is_same<std::make_signed<unsignedint>::type,signedint>::value),"");static_assert((std::is_same<std::make_signed<long>::type,signedlong>::value),"");static_assert((std::is_same<std::make_signed<unsignedlong>::type,long>::value),"");static_assert((std::is_same<std::make_signed<longlong>::type,signedlonglong>::value),"");static_assert((std::is_same<std::make_signed<unsignedlonglong>::type,signedlonglong>::value),"");static_assert((std::is_same<std::make_signed<wchar_t>::type,int>::value),"");static_assert((std::is_same<std::make_signed<constwchar_t>::type,constint>::value),"");static_assert((std::is_same<std::make_signed<constEnum>::type,constint>::value),"");static_assert((std::is_same<std::make_signed<BigEnum>::type,std::conditional<sizeof(long)==4,longlong,long>::type>::value),"");}