1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/meta/convertible.h
3 // Purpose: Test if types are convertible
4 // Author: Arne Steinarson
6 // Copyright: (c) 2008 Arne Steinarson
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
10 #ifndef _WX_META_CONVERTIBLE_H_
11 #define _WX_META_CONVERTIBLE_H_
14 // Introduce an extra class to make this header compilable with g++3.2
16 template <class D
, class B
>
17 struct wxConvertibleTo_SizeHelper
19 static char Match(B
* pb
);
20 static int Match(...);
23 // Helper to decide if an object of type D is convertible to type B (the test
24 // succeeds in particular when D derives from B)
25 template <class D
, class B
>
26 struct wxConvertibleTo
31 sizeof(wxConvertibleTo_SizeHelper
<D
,B
>::Match(static_cast<D
*>(NULL
)))
37 #endif // _WX_META_CONVERTIBLE_H_