]> Dogcows Code - chaz/yoink/blob - triple.hpp
9546ccef6123eff6c774612e2762c246d8910b94
[chaz/yoink] / triple.hpp
1 #ifndef STLPLUS_TRIPLE
2 #define STLPLUS_TRIPLE
3 ////////////////////////////////////////////////////////////////////////////////
4
5 // Author: Andy Rushton, from an original by Dan Milton
6 // Copyright: (c) Southampton University 1999-2004
7 // (c) Andy Rushton 2004-2009
8 // License: BSD License, see ../docs/license.html
9
10 // Similar to the STL pair but with three elements
11
12 ////////////////////////////////////////////////////////////////////////////////
13 #include "containers_fixes.hpp"
14
15 namespace stlplus
16 {
17
18 ////////////////////////////////////////////////////////////////////////////////
19 // the triple class
20
21 template<typename T1, typename T2, typename T3>
22 struct triple
23 {
24 typedef T1 first_type;
25 typedef T2 second_type;
26 typedef T3 third_type;
27
28 T1 first;
29 T2 second;
30 T3 third;
31
32 triple(void);
33 triple(const T1& p1, const T2& p2, const T3& p3);
34 triple(const triple<T1,T2,T3>& t2);
35 };
36
37 ////////////////////////////////////////////////////////////////////////////////
38 // creation
39
40 template<typename T1, typename T2, typename T3>
41 triple<T1,T2,T3> make_triple(const T1& first, const T2& second, const T3& third);
42
43 ////////////////////////////////////////////////////////////////////////////////
44 // comparison
45
46 template<typename T1, typename T2, typename T3>
47 bool operator == (const triple<T1,T2,T3>& left, const triple<T1,T2,T3>& right);
48
49 ////////////////////////////////////////////////////////////////////////////////
50
51 } // end namespace stlplus
52
53 #include "triple.tpp"
54 #endif
This page took 0.039125 seconds and 3 git commands to generate.