]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/meta/convertible.h
support SDK < 10.6, fixes #14902
[wxWidgets.git] / include / wx / meta / convertible.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/meta/convertible.h
3// Purpose: Test if types are convertible
4// Author: Arne Steinarson
5// Created: 2008-01-10
6// RCS-ID: $Id$
7// Copyright: (c) 2008 Arne Steinarson
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_META_CONVERTIBLE_H_
12#define _WX_META_CONVERTIBLE_H_
13
14//
15// Introduce an extra class to make this header compilable with g++3.2
16//
17template <class D, class B>
18struct wxConvertibleTo_SizeHelper
19{
20 static char Match(B* pb);
21 static int Match(...);
22};
23
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)
26template <class D, class B>
27struct wxConvertibleTo
28{
29 enum
30 {
31 value =
32 sizeof(wxConvertibleTo_SizeHelper<D,B>::Match(static_cast<D*>(NULL)))
33 ==
34 sizeof(char)
35 };
36};
37
38#endif // _WX_META_CONVERTIBLE_H_
39