Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/miniprojects/src/cpptcl/details/metahelpers.h @ 2755

Last change on this file since 2755 was 1505, checked in by rgrieder, 16 years ago

f* svn: It doesn't even inform you if you attempt to set a non existing property. It is svn:eol-style and not eol-style when using the command by the way…

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1//
2// Copyright (C) 2004-2006, Maciej Sobczak
3//
4// Permission to copy, use, modify, sell and distribute this software
5// is granted provided this copyright notice appears in all copies.
6// This software is provided "as is" without express or implied
7// warranty, and with no claim as to its suitability for any purpose.
8//
9
10// Note: this file is not supposed to be a stand-alone header
11
12
13template <class C, typename T1, typename T2, typename T3, typename T4,
14          typename T5, typename T6, typename T7, typename T8,
15          typename T9>
16struct get_callback_type_for_construct
17{
18     typedef callback9<C*, T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
19};
20
21template <class C, typename T1, typename T2, typename T3, typename T4,
22          typename T5, typename T6, typename T7, typename T8>
23struct get_callback_type_for_construct<
24     C, T1, T2, T3, T4, T5, T6, T7, T8, void>
25{
26     typedef callback8<C*, T1, T2, T3, T4, T5, T6, T7, T8> type;
27};
28
29template <class C, typename T1, typename T2, typename T3, typename T4,
30          typename T5, typename T6, typename T7>
31struct get_callback_type_for_construct<
32     C, T1, T2, T3, T4, T5, T6, T7, void, void>
33{
34     typedef callback7<C*, T1, T2, T3, T4, T5, T6, T7> type;
35};
36
37template <class C, typename T1, typename T2, typename T3, typename T4,
38          typename T5, typename T6>
39struct get_callback_type_for_construct<
40     C, T1, T2, T3, T4, T5, T6, void, void, void>
41{
42     typedef callback6<C*, T1, T2, T3, T4, T5, T6> type;
43};
44
45template <class C, typename T1, typename T2, typename T3, typename T4,
46          typename T5>
47struct get_callback_type_for_construct<
48     C, T1, T2, T3, T4, T5, void, void, void, void>
49{
50     typedef callback5<C*, T1, T2, T3, T4, T5> type;
51};
52
53template <class C, typename T1, typename T2, typename T3, typename T4>
54struct get_callback_type_for_construct<
55     C, T1, T2, T3, T4, void, void, void, void, void>
56{
57     typedef callback4<C*, T1, T2, T3, T4> type;
58};
59
60template <class C, typename T1, typename T2, typename T3>
61struct get_callback_type_for_construct<
62     C, T1, T2, T3, void, void, void, void, void, void>
63{
64     typedef callback3<C*, T1, T2, T3> type;
65};
66
67template <class C, typename T1, typename T2>
68struct get_callback_type_for_construct<
69     C, T1, T2, void, void, void, void, void, void, void>
70{
71     typedef callback2<C*, T1, T2> type;
72};
73
74template <class C, typename T1>
75struct get_callback_type_for_construct<
76     C, T1, void, void, void, void, void, void, void, void>
77{
78     typedef callback1<C*, T1> type;
79};
80
81template <class C>
82struct get_callback_type_for_construct<
83     C, void, void, void, void, void, void, void, void, void>
84{
85     typedef callback0<C*> type;
86};
Note: See TracBrowser for help on using the repository browser.