1
/////////////////////////////////////////////////////////////////////////////
2
// Name: wx/meta/convertible.h
3
// Purpose: Test if types are convertible
4
// Author: Arne Steinarson
6
// RCS-ID: $Id: convertible.h 61724 2009-08-21 10:41:26Z VZ $
7
// Copyright: (c) 2008 Arne Steinarson
8
// Licence: wxWindows licence
9
/////////////////////////////////////////////////////////////////////////////
11
#ifndef _WX_META_CONVERTIBLE_H_
12
#define _WX_META_CONVERTIBLE_H_
15
// Introduce an extra class to make this header compilable with g++3.2
17
template <class D, class B>
18
struct wxConvertibleTo_SizeHelper
20
static char Match(B* pb);
21
static int Match(...);
24
// Helper to decide if an object of type D is convertible to type B (the test
25
// succeeds in particular when D derives from B)
26
template <class D, class B>
27
struct wxConvertibleTo
32
sizeof(wxConvertibleTo_SizeHelper<D,B>::Match(static_cast<D*>(NULL)))
38
#endif // _WX_META_CONVERTIBLE_H_