Fix LWG Issue 2141: common_type trait produces reference types
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@192142 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -18,10 +18,24 @@ int main()
|
||||
static_assert((std::is_same<std::common_type<int>::type, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type<char>::type, char>::value), "");
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
static_assert((std::is_same<std::common_type_t<int>, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type_t<int>, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type_t<char>, char>::value), "");
|
||||
#endif
|
||||
|
||||
static_assert((std::is_same<std::common_type< int>::type, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type<const int>::type, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type< volatile int>::type, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type<const volatile int>::type, int>::value), "");
|
||||
|
||||
static_assert((std::is_same<std::common_type<int, int>::type, int>::value), "");
|
||||
static_assert((std::is_same<std::common_type<int, const int>::type, int>::value), "");
|
||||
|
||||
static_assert((std::is_same<std::common_type<long, const int>::type, long>::value), "");
|
||||
static_assert((std::is_same<std::common_type<const long, int>::type, long>::value), "");
|
||||
static_assert((std::is_same<std::common_type<long, volatile int>::type, long>::value), "");
|
||||
static_assert((std::is_same<std::common_type<volatile long, int>::type, long>::value), "");
|
||||
static_assert((std::is_same<std::common_type<const long, const int>::type, long>::value), "");
|
||||
|
||||
static_assert((std::is_same<std::common_type<double, char>::type, double>::value), "");
|
||||
static_assert((std::is_same<std::common_type<short, char>::type, int>::value), "");
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
|
@@ -19,8 +19,8 @@ void test_is_trivially_copyable()
|
||||
{
|
||||
static_assert( std::is_trivially_copyable<T>::value, "");
|
||||
static_assert( std::is_trivially_copyable<const T>::value, "");
|
||||
static_assert( std::is_trivially_copyable<volatile T>::value, "");
|
||||
static_assert( std::is_trivially_copyable<const volatile T>::value, "");
|
||||
static_assert(!std::is_trivially_copyable<volatile T>::value, "");
|
||||
static_assert(!std::is_trivially_copyable<const volatile T>::value, "");
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
Reference in New Issue
Block a user