Changes in src/Common/utility.h [1ba88a0:79970ed]
- File:
-
- 1 edited
-
src/Common/utility.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Common/utility.h
r1ba88a0 r79970ed 246 246 } 247 247 248 // RAII object to regulate "save and restore" behaviour, e.g.249 // void Foo::bar() {250 // ValueGuard<int> guard(var); // var is a member of type Foo251 // var = ...;252 // } // var's original value is restored253 template< typename T >254 struct ValueGuard {255 T old;256 T& ref;257 258 ValueGuard(T& inRef) : old(inRef), ref(inRef) {}259 ~ValueGuard() { ref = old; }260 };261 262 template< typename T >263 struct reverseIterate_t {264 T& ref;265 266 reverseIterate_t( T & ref ) : ref(ref) {}267 268 typedef typename T::reverse_iterator iterator;269 iterator begin() { return ref.rbegin(); }270 iterator end() { return ref.rend(); }271 };272 273 template< typename T >274 reverseIterate_t< T > reverseIterate( T & ref ) {275 return reverseIterate_t< T >( ref );276 }277 278 248 #endif // _UTILITY_H 279 249
Note:
See TracChangeset
for help on using the changeset viewer.