ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/utils/Tuple.hpp
Revision: 1657
Committed: Wed Oct 27 06:07:09 2004 UTC (19 years, 8 months ago) by tim
File size: 1060 byte(s)
Log Message:
Adding Generic Tuple3 and Tuple4

File Contents

# User Rev Content
1 tim 1657 #ifndef UTILS_TUPLE_HPP
2     #define UTILS_TUPLE_HPP
3    
4     namespace oopse {
5    
6     template <class T1, class T2, class T3>
7     struct tuple3 {
8     typedef T1 first_type;
9     typedef T2 second_type;
10     typedef T3 third_type;
11    
12     T1 first;
13     T2 second;
14     T3 third;
15     tuple3() {}
16     tuple3(const T1& a, const T2& b, const T3& c) : first(a), second(b), third(c) {}
17     };
18    
19     template <class T1, class T2, class T3>
20     tuple3<T1,T2,T3> make_tuple3( T1 t1, T2 t2, T3 t3 ) {
21     return tuple3<T1,T2,T3>( t1, t2, t3 );
22     }
23    
24    
25     template <class T1, class T2, class T3, class T4>
26     struct tuple4 {
27     typedef T1 first_type;
28     typedef T2 second_type;
29     typedef T3 third_type;
30     typedef T4 fourth_type;
31    
32     T1 first;
33     T2 second;
34     T3 third;
35     T4 fourth;
36     tuple4() {}
37     tuple4(const T1& a, const T2& b, const T3& c, const T4& d)
38     : first(a), second(b), third(c), fourth(d) {}
39     };
40    
41     template <class T1, class T2, class T3, class T4>
42     tuple4<T1,T2,T3,T4> make_tuple4( T1 t1, T2 t2, T3 t3, T4 t4 ) {
43     return tuple4<T1,T2,T3,T4>( t1, t2, t3, t4 );
44     }
45    
46     }
47     #endif //UTILS_TUPLE_HPP
48