Go to the documentation of this file.
49 #ifndef CARTOBASE_TYPE_CONVERSION_H
50 #define CARTOBASE_TYPE_CONVERSION_H
59 template <
typename T,
typename U>
63 template <
typename V,
typename W>
68 static no test( ... );
69 static yes test( W* );
71 typedef Helper<T, U> H;
77 exists =
sizeof(
typename H::yes ) ==
sizeof( H::test(
static_cast<T*
>(0) ) )
86 #define SUPERSUBCLASS( T, U ) \
87 ( static_cast<bool>(::carto::conversion<const U, const T>::exists) )
89 #define SUPERSUBCLASS_NONCONST( T, U ) \
90 ( static_cast<bool>(::carto::conversion<U, T>::exists) )