|
1 /*********************************************************************************** |
|
2 ThrowCompare.h |
|
3 |
|
4 Interface for the ThrowCompare class |
|
5 |
|
6 * Copyright (c) 1997 |
|
7 * Mark of the Unicorn, Inc. |
|
8 * |
|
9 * Permission to use, copy, modify, distribute and sell this software |
|
10 * and its documentation for any purpose is hereby granted without fee, |
|
11 * provided that the above copyright notice appear in all copies and |
|
12 * that both that copyright notice and this permission notice appear |
|
13 * in supporting documentation. Mark of the Unicorn makes no |
|
14 * representations about the suitability of this software for any |
|
15 * purpose. It is provided "as is" without express or implied warranty. |
|
16 |
|
17 ***********************************************************************************/ |
|
18 #ifndef ThrowCompare_H_ |
|
19 #define ThrowCompare_H_ |
|
20 |
|
21 #include "Prefix.h" |
|
22 #include "TestClass.h" |
|
23 |
|
24 struct ThrowCompare { |
|
25 bool operator()( const TestClass& a, const TestClass& b ) const { |
|
26 simulate_possible_failure(); |
|
27 return a < b; |
|
28 } |
|
29 }; |
|
30 |
|
31 |
|
32 struct ThrowEqual { |
|
33 inline bool operator()( const TestClass& a, const TestClass& b ) const { |
|
34 simulate_possible_failure(); |
|
35 return a == b; |
|
36 } |
|
37 }; |
|
38 |
|
39 struct ThrowHash { // : private ThrowCompare |
|
40 inline EH_CSTD::size_t operator()( const TestClass& a ) const { |
|
41 simulate_possible_failure(); |
|
42 return EH_CSTD::size_t(a.value()); |
|
43 } |
|
44 }; |
|
45 |
|
46 #endif // ThrowCompare_H_ |