diff options
Diffstat (limited to '')
| -rw-r--r-- | src/stable/util.h | 294 |
1 files changed, 147 insertions, 147 deletions
diff --git a/src/stable/util.h b/src/stable/util.h index 4514281..ab9cd08 100644 --- a/src/stable/util.h +++ b/src/stable/util.h | |||
| @@ -25,158 +25,158 @@ | |||
| 25 | 25 | ||
| 26 | namespace Bu | 26 | namespace Bu |
| 27 | { | 27 | { |
| 28 | /** | 28 | /** |
| 29 | * Swap the value of two variables, uses references, so it's pretty safe. | 29 | * Swap the value of two variables, uses references, so it's pretty safe. |
| 30 | * Objects passed in must support a basic assignemnt operator (=); | 30 | * Objects passed in must support a basic assignemnt operator (=); |
| 31 | *@param a Variable to recieve the value of parameter b | 31 | *@param a Variable to recieve the value of parameter b |
| 32 | *@param b Variable to recieve the value of parameter a | 32 | *@param b Variable to recieve the value of parameter a |
| 33 | */ | 33 | */ |
| 34 | template<typename item> | 34 | template<typename item> |
| 35 | void swap( item &a, item &b ) | 35 | void swap( item &a, item &b ) |
| 36 | { | 36 | { |
| 37 | item tmp = a; | 37 | item tmp = a; |
| 38 | a = b; | 38 | a = b; |
| 39 | b = tmp; | 39 | b = tmp; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | /** | 42 | /** |
| 43 | * Finds the lesser of the two objects, objects passed in must be | 43 | * Finds the lesser of the two objects, objects passed in must be |
| 44 | * less-than-comparable. | 44 | * less-than-comparable. |
| 45 | *@param a A value to test. | 45 | *@param a A value to test. |
| 46 | *@param b Another value to test. | 46 | *@param b Another value to test. |
| 47 | *@returns A reference to the lesser of a or b. | 47 | *@returns A reference to the lesser of a or b. |
| 48 | */ | 48 | */ |
| 49 | template<typename item> | 49 | template<typename item> |
| 50 | const item &buMin( const item &a, const item &b ) | 50 | const item &buMin( const item &a, const item &b ) |
| 51 | { | 51 | { |
| 52 | return a<b?a:b; | 52 | return a<b?a:b; |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | /** | 55 | /** |
| 56 | * Finds the lesser of the two objects, objects passed in must be | 56 | * Finds the lesser of the two objects, objects passed in must be |
| 57 | * less-than-comparable. | 57 | * less-than-comparable. |
| 58 | *@param a A value to test. | 58 | *@param a A value to test. |
| 59 | *@param b Another value to test. | 59 | *@param b Another value to test. |
| 60 | *@returns A reference to the lesser of a or b. | 60 | *@returns A reference to the lesser of a or b. |
| 61 | */ | 61 | */ |
| 62 | template<typename item> | 62 | template<typename item> |
| 63 | item &buMin( item &a, item &b ) | 63 | item &buMin( item &a, item &b ) |
| 64 | { | 64 | { |
| 65 | return a<b?a:b; | 65 | return a<b?a:b; |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | /** | 68 | /** |
| 69 | * Finds the greater of the two objects, objects passed in must be | 69 | * Finds the greater of the two objects, objects passed in must be |
| 70 | * less-than-comparable. | 70 | * less-than-comparable. |
| 71 | *@param a A value to test. | 71 | *@param a A value to test. |
| 72 | *@param b Another value to test. | 72 | *@param b Another value to test. |
| 73 | *@returns A reference to the greater of a or b. | 73 | *@returns A reference to the greater of a or b. |
| 74 | */ | 74 | */ |
| 75 | template<typename item> | 75 | template<typename item> |
| 76 | const item &buMax( const item &a, const item &b ) | 76 | const item &buMax( const item &a, const item &b ) |
| 77 | { | 77 | { |
| 78 | return b<a?a:b; | 78 | return b<a?a:b; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | /** | 81 | /** |
| 82 | * Finds the greater of the two objects, objects passed in must be | 82 | * Finds the greater of the two objects, objects passed in must be |
| 83 | * less-than-comparable. | 83 | * less-than-comparable. |
| 84 | *@param a A value to test. | 84 | *@param a A value to test. |
| 85 | *@param b Another value to test. | 85 | *@param b Another value to test. |
| 86 | *@returns A reference to the greater of a or b. | 86 | *@returns A reference to the greater of a or b. |
| 87 | */ | 87 | */ |
| 88 | template<typename item> | 88 | template<typename item> |
| 89 | item &buMax( item &a, item &b ) | 89 | item &buMax( item &a, item &b ) |
| 90 | { | 90 | { |
| 91 | return b<a?a:b; | 91 | return b<a?a:b; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /** | 94 | /** |
| 95 | * Given three objects this finds the one between the other two. | 95 | * Given three objects this finds the one between the other two. |
| 96 | *@param a A value to test. | 96 | *@param a A value to test. |
| 97 | *@param b Another value to test. | 97 | *@param b Another value to test. |
| 98 | *@param c Yet another value to test. | 98 | *@param c Yet another value to test. |
| 99 | *@returns A reference to the mid-value of a, b, and c. | 99 | *@returns A reference to the mid-value of a, b, and c. |
| 100 | */ | 100 | */ |
| 101 | template<typename item> | 101 | template<typename item> |
| 102 | const item &buMid( const item &a, const item &b, const item &c ) | 102 | const item &buMid( const item &a, const item &b, const item &c ) |
| 103 | { | 103 | { |
| 104 | return buMin( buMax( a, b ), c ); | 104 | return buMin( buMax( a, b ), c ); |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | /** | 107 | /** |
| 108 | * Given three objects this finds the one between the other two. | 108 | * Given three objects this finds the one between the other two. |
| 109 | *@param a A value to test. | 109 | *@param a A value to test. |
| 110 | *@param b Another value to test. | 110 | *@param b Another value to test. |
| 111 | *@param c Yet another value to test. | 111 | *@param c Yet another value to test. |
| 112 | *@returns A reference to the mid-value of a, b, and c. | 112 | *@returns A reference to the mid-value of a, b, and c. |
| 113 | */ | 113 | */ |
| 114 | template<typename item> | 114 | template<typename item> |
| 115 | item &buMid( item &a, item &b, item &c ) | 115 | item &buMid( item &a, item &b, item &c ) |
| 116 | { | 116 | { |
| 117 | return buMin( buMax( a, b ), c ); | 117 | return buMin( buMax( a, b ), c ); |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | // | 120 | // |
| 121 | // Basic comparison functors | 121 | // Basic comparison functors |
| 122 | // | 122 | // |
| 123 | /** | 123 | /** |
| 124 | * Simple less-than comparison functor. Objects being used should be | 124 | * Simple less-than comparison functor. Objects being used should be |
| 125 | * less-than-comparable. | 125 | * less-than-comparable. |
| 126 | */ | 126 | */ |
| 127 | template<typename item> | 127 | template<typename item> |
| 128 | struct __basicLTCmp | 128 | struct __basicLTCmp |
| 129 | { | 129 | { |
| 130 | bool operator()( const item &a, const item &b ) | 130 | bool operator()( const item &a, const item &b ) |
| 131 | { | 131 | { |
| 132 | return a < b; | 132 | return a < b; |
| 133 | } | 133 | } |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | /** | 136 | /** |
| 137 | * Simple greater-than comparison functor. Objects being used should be | 137 | * Simple greater-than comparison functor. Objects being used should be |
| 138 | * greater-than-comparable. | 138 | * greater-than-comparable. |
| 139 | */ | 139 | */ |
| 140 | template<typename item> | 140 | template<typename item> |
| 141 | struct __basicGTCmp | 141 | struct __basicGTCmp |
| 142 | { | 142 | { |
| 143 | bool operator()( const item &a, const item &b ) | 143 | bool operator()( const item &a, const item &b ) |
| 144 | { | 144 | { |
| 145 | return a > b; | 145 | return a > b; |
| 146 | } | 146 | } |
| 147 | }; | 147 | }; |
| 148 | 148 | ||
| 149 | /** | 149 | /** |
| 150 | * As __basicLTCmp but dereferences the passed in pointers before comparing. | 150 | * As __basicLTCmp but dereferences the passed in pointers before comparing. |
| 151 | */ | 151 | */ |
| 152 | template<typename item> | 152 | template<typename item> |
| 153 | struct __basicPtrLTCmp | 153 | struct __basicPtrLTCmp |
| 154 | { | 154 | { |
| 155 | bool operator()( const item &a, const item &b ) | 155 | bool operator()( const item &a, const item &b ) |
| 156 | { | 156 | { |
| 157 | return *a < *b; | 157 | return *a < *b; |
| 158 | } | 158 | } |
| 159 | }; | 159 | }; |
| 160 | 160 | ||
| 161 | /** | 161 | /** |
| 162 | * As __basicGTCmp but dereferences the passed in pointers before comparing. | 162 | * As __basicGTCmp but dereferences the passed in pointers before comparing. |
| 163 | */ | 163 | */ |
| 164 | template<typename item> | 164 | template<typename item> |
| 165 | struct __basicPtrGTCmp | 165 | struct __basicPtrGTCmp |
| 166 | { | 166 | { |
| 167 | bool operator()( const item &a, const item &b ) | 167 | bool operator()( const item &a, const item &b ) |
| 168 | { | 168 | { |
| 169 | return *a > *b; | 169 | return *a > *b; |
| 170 | } | 170 | } |
| 171 | }; | 171 | }; |
| 172 | 172 | ||
| 173 | /** | 173 | /** |
| 174 | * Get the number of days in the month in the gregorian calendar, taking | 174 | * Get the number of days in the month in the gregorian calendar, taking |
| 175 | * leap years into account. | 175 | * leap years into account. |
| 176 | */ | 176 | */ |
| 177 | int getDaysInMonth( int iMonth, int iYear ); | 177 | int getDaysInMonth( int iMonth, int iYear ); |
| 178 | 178 | ||
| 179 | void memcpy( void *pDest, const void *pSrc, size_t iBytes ); | 179 | void memcpy( void *pDest, const void *pSrc, size_t iBytes ); |
| 180 | }; | 180 | }; |
| 181 | 181 | ||
| 182 | #endif | 182 | #endif |
