| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. | 3 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 static_assert(IsConvertibleToInteger<unsigned long long>::value, "unsigned long
long should be convertible to integer"); | 169 static_assert(IsConvertibleToInteger<unsigned long long>::value, "unsigned long
long should be convertible to integer"); |
| 170 #if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED) | 170 #if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED) |
| 171 static_assert(IsConvertibleToInteger<wchar_t>::value, "whcar_t should be convert
ible to integer"); | 171 static_assert(IsConvertibleToInteger<wchar_t>::value, "whcar_t should be convert
ible to integer"); |
| 172 #endif | 172 #endif |
| 173 static_assert(IsConvertibleToInteger<double>::value, "double should be convertib
le to integer"); | 173 static_assert(IsConvertibleToInteger<double>::value, "double should be convertib
le to integer"); |
| 174 static_assert(IsConvertibleToInteger<long double>::value, "long double should be
convertible to integer"); | 174 static_assert(IsConvertibleToInteger<long double>::value, "long double should be
convertible to integer"); |
| 175 static_assert(IsConvertibleToInteger<float>::value, "float should be convertible
to integer"); | 175 static_assert(IsConvertibleToInteger<float>::value, "float should be convertible
to integer"); |
| 176 static_assert(!IsConvertibleToInteger<char*>::value, "char* should not be conver
tible to integer"); | 176 static_assert(!IsConvertibleToInteger<char*>::value, "char* should not be conver
tible to integer"); |
| 177 static_assert(!IsConvertibleToInteger<const char*>::value, "const char* should n
ot be convertible to integer"); | 177 static_assert(!IsConvertibleToInteger<const char*>::value, "const char* should n
ot be convertible to integer"); |
| 178 static_assert(!IsConvertibleToInteger<volatile char*>::value, "volatile char* sh
ould not be convertible to integer"); | 178 static_assert(!IsConvertibleToInteger<volatile char*>::value, "volatile char* sh
ould not be convertible to integer"); |
| 179 static_assert(!IsConvertibleToInteger<IsConvertibleToInteger<bool> >::value, "st
ruct should not be convertible to integer"); | 179 static_assert(!IsConvertibleToInteger<IsConvertibleToInteger<bool>>::value, "str
uct should not be convertible to integer"); |
| 180 | 180 |
| 181 static_assert((IsPointerConvertible<int, int>::Value), "pointers to the same typ
e should be convertible"); | 181 static_assert((IsPointerConvertible<int, int>::Value), "pointers to the same typ
e should be convertible"); |
| 182 static_assert((!IsPointerConvertible<int, unsigned>::Value), "int pointers shoul
d not be convertible to unsigned pointers"); | 182 static_assert((!IsPointerConvertible<int, unsigned>::Value), "int pointers shoul
d not be convertible to unsigned pointers"); |
| 183 static_assert((IsPointerConvertible<int, const int>::Value), "int pointers shoul
d be convertible to const int pointers"); | 183 static_assert((IsPointerConvertible<int, const int>::Value), "int pointers shoul
d be convertible to const int pointers"); |
| 184 static_assert((!IsPointerConvertible<const int, int>::Value), "const int* should
not be convertible to int*"); | 184 static_assert((!IsPointerConvertible<const int, int>::Value), "const int* should
not be convertible to int*"); |
| 185 static_assert((IsPointerConvertible<int, volatile int>::Value), "int* should be
convertible to volatile int*"); | 185 static_assert((IsPointerConvertible<int, volatile int>::Value), "int* should be
convertible to volatile int*"); |
| 186 | 186 |
| 187 static_assert((IsSameType<bool, bool>::value), "bool should be the same type as
itself"); | 187 static_assert((IsSameType<bool, bool>::value), "bool should be the same type as
itself"); |
| 188 static_assert((IsSameType<int*, int*>::value), "int* should be the same type as
itself"); | 188 static_assert((IsSameType<int*, int*>::value), "int* should be the same type as
itself"); |
| 189 static_assert((!IsSameType<int, int*>::value), "int should not be the same type
as int*"); | 189 static_assert((!IsSameType<int, int*>::value), "int should not be the same type
as int*"); |
| 190 static_assert((!IsSameType<bool, const bool>::value), "T should not be the same
type as const T"); | 190 static_assert((!IsSameType<bool, const bool>::value), "T should not be the same
type as const T"); |
| 191 static_assert((!IsSameType<bool, volatile bool>::value), "T should not be the sa
me type as volatile T"); | 191 static_assert((!IsSameType<bool, volatile bool>::value), "T should not be the sa
me type as volatile T"); |
| 192 | 192 |
| 193 template <typename T> | 193 template <typename T> |
| 194 class TestBaseClass { | 194 class TestBaseClass { |
| 195 }; | 195 }; |
| 196 | 196 |
| 197 class TestDerivedClass : public TestBaseClass<int> { | 197 class TestDerivedClass : public TestBaseClass<int> { |
| 198 }; | 198 }; |
| 199 | 199 |
| 200 static_assert((IsSubclass<TestDerivedClass, TestBaseClass<int> >::value), "Deriv
ed class should be a subclass of its base"); | 200 static_assert((IsSubclass<TestDerivedClass, TestBaseClass<int>>::value), "Derive
d class should be a subclass of its base"); |
| 201 static_assert((!IsSubclass<TestBaseClass<int>, TestDerivedClass>::value), "Base
class should not be a sublass of a derived class"); | 201 static_assert((!IsSubclass<TestBaseClass<int>, TestDerivedClass>::value), "Base
class should not be a sublass of a derived class"); |
| 202 static_assert((IsSubclassOfTemplate<TestDerivedClass, TestBaseClass>::value), "D
erived class should be a subclass of template from its base"); | 202 static_assert((IsSubclassOfTemplate<TestDerivedClass, TestBaseClass>::value), "D
erived class should be a subclass of template from its base"); |
| 203 static_assert((IsSameType<RemoveTemplate<TestBaseClass<int>, TestBaseClass>::Typ
e, int>::value), "RemoveTemplate should remove the template typename from the ty
pe"); | 203 static_assert((IsSameType<RemoveTemplate<TestBaseClass<int>, TestBaseClass>::Typ
e, int>::value), "RemoveTemplate should remove the template typename from the ty
pe"); |
| 204 static_assert((IsSameType<RemoveTemplate<int, TestBaseClass>::Type, int>::value)
, "RemoveTemplate should not alter non-template types"); | 204 static_assert((IsSameType<RemoveTemplate<int, TestBaseClass>::Type, int>::value)
, "RemoveTemplate should not alter non-template types"); |
| 205 static_assert((IsPointerConvertible<TestDerivedClass, TestBaseClass<int> >::Valu
e), "Derived class pointers should be convertible to base class pointers"); | 205 static_assert((IsPointerConvertible<TestDerivedClass, TestBaseClass<int>>::Value
), "Derived class pointers should be convertible to base class pointers"); |
| 206 static_assert((!IsPointerConvertible<TestBaseClass<int>, TestDerivedClass>::Valu
e), "Base class pointers should not be convertible to derived class pointers"); | 206 static_assert((!IsPointerConvertible<TestBaseClass<int>, TestDerivedClass>::Valu
e), "Base class pointers should not be convertible to derived class pointers"); |
| 207 | 207 |
| 208 static_assert((IsSameType<bool, RemoveConst<const bool>::Type>::value), "RemoveC
onst should produce the corresponding non-const type"); | 208 static_assert((IsSameType<bool, RemoveConst<const bool>::Type>::value), "RemoveC
onst should produce the corresponding non-const type"); |
| 209 static_assert((!IsSameType<bool, RemoveConst<volatile bool>::Type>::value), "Rem
oveConst of volatile types should not remove volatility"); | 209 static_assert((!IsSameType<bool, RemoveConst<volatile bool>::Type>::value), "Rem
oveConst of volatile types should not remove volatility"); |
| 210 | 210 |
| 211 static_assert((IsSameType<bool, RemoveVolatile<bool>::Type>::value), "RemoveVola
tile should not modify the type of non-volatile types"); | 211 static_assert((IsSameType<bool, RemoveVolatile<bool>::Type>::value), "RemoveVola
tile should not modify the type of non-volatile types"); |
| 212 static_assert((!IsSameType<bool, RemoveVolatile<const bool>::Type>::value), "Rem
oveVolatile should not remove const-ness"); | 212 static_assert((!IsSameType<bool, RemoveVolatile<const bool>::Type>::value), "Rem
oveVolatile should not remove const-ness"); |
| 213 static_assert((IsSameType<bool, RemoveVolatile<volatile bool>::Type>::value), "R
emoveVolatile should produce the equivalent non-volatile type"); | 213 static_assert((IsSameType<bool, RemoveVolatile<volatile bool>::Type>::value), "R
emoveVolatile should produce the equivalent non-volatile type"); |
| 214 | 214 |
| 215 static_assert((IsSameType<bool, RemoveConstVolatile<bool>::Type>::value), "Remov
eConstVolatile should not modify the type of non-const non-volatile types"); | 215 static_assert((IsSameType<bool, RemoveConstVolatile<bool>::Type>::value), "Remov
eConstVolatile should not modify the type of non-const non-volatile types"); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 228 typedef int IntArray[]; | 228 typedef int IntArray[]; |
| 229 typedef int IntArraySized[4]; | 229 typedef int IntArraySized[4]; |
| 230 | 230 |
| 231 static_assert((IsArray<IntArray>::value), "IsArray should recognize arrays"); | 231 static_assert((IsArray<IntArray>::value), "IsArray should recognize arrays"); |
| 232 static_assert((IsArray<IntArraySized>::value), "IsArray should recognize sized a
rrays"); | 232 static_assert((IsArray<IntArraySized>::value), "IsArray should recognize sized a
rrays"); |
| 233 | 233 |
| 234 static_assert((IsSameType<int, RemoveExtent<IntArray>::Type>::value), "RemoveExt
ent should return the array element type of an array"); | 234 static_assert((IsSameType<int, RemoveExtent<IntArray>::Type>::value), "RemoveExt
ent should return the array element type of an array"); |
| 235 static_assert((IsSameType<int, RemoveExtent<IntArraySized>::Type>::value), "Remo
veExtent should return the array element type of a sized array"); | 235 static_assert((IsSameType<int, RemoveExtent<IntArraySized>::Type>::value), "Remo
veExtent should return the array element type of a sized array"); |
| 236 | 236 |
| 237 } // namespace WTF | 237 } // namespace WTF |
| OLD | NEW |