Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/network/src/cpptcl/details/constructors.h @ 1494

Last change on this file since 1494 was 1494, checked in by rgrieder, 16 years ago
  • set the svn:eol-style property to all files so, that where ever you check out, you'll get the right line endings (had to change every file with mixed endings to windows in order to set the property)
  • Property svn:eol-style set to native
File size: 2.8 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, typename T9>
15struct construct
16{
17     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7,
18          T8 t8, T9 t9)
19     { return new C(t1, t2, t3, t4, t5, t6, t7, t8, t9); }
20};
21
22template <class C, typename T1, typename T2, typename T3, typename T4,
23          typename T5, typename T6, typename T7, typename T8>
24struct construct<C, T1, T2, T3, T4, T5, T6, T7, T8, void>
25{
26     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)
27     { return new C(t1, t2, t3, t4, t5, t6, t7, t8); }
28};
29
30template <class C, typename T1, typename T2, typename T3, typename T4,
31          typename T5, typename T6, typename T7>
32struct construct<C, T1, T2, T3, T4, T5, T6, T7, void, void>
33{
34     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)
35     { return new C(t1, t2, t3, t4, t5, t6, t7); }
36};
37
38template <class C, typename T1, typename T2, typename T3, typename T4,
39          typename T5, typename T6>
40struct construct<C, T1, T2, T3, T4, T5, T6, void, void, void>
41{
42     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
43     { return new C(t1, t2, t3, t4, t5, t6); }
44};
45
46template <class C, typename T1, typename T2, typename T3, typename T4,
47          typename T5>
48struct construct<C, T1, T2, T3, T4, T5, void, void, void, void>
49{
50     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
51     { return new C(t1, t2, t3, t4, t5); }
52};
53
54template <class C, typename T1, typename T2, typename T3, typename T4>
55struct construct<C, T1, T2, T3, T4, void, void, void, void, void>
56{
57     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4)
58     { return new C(t1, t2, t3, t4); }
59};
60
61template <class C, typename T1, typename T2, typename T3>
62struct construct<C, T1, T2, T3, void, void, void, void, void, void>
63{
64     static C * doit(T1 t1, T2 t2, T3 t3)
65     { return new C(t1, t2, t3); }
66};
67
68template <class C, typename T1, typename T2>
69struct construct<C, T1, T2, void, void, void, void, void, void, void>
70{
71     static C * doit(T1 t1, T2 t2)
72     { return new C(t1, t2); }
73};
74
75template <class C, typename T1>
76struct construct<C, T1, void, void, void, void, void, void, void, void>
77{
78     static C * doit(T1 t1)
79     { return new C(t1); }
80};
81
82template <class C>
83struct construct<C, void, void, void, void, void,
84                 void, void, void, void>
85{
86     static C * doit()
87     { return new C(); }
88};
Note: See TracBrowser for help on using the repository browser.