Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Common/utility.h

    r1ba88a0 r79970ed  
    246246}
    247247
    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 Foo
    251 //   var = ...;
    252 // } // var's original value is restored
    253 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 
    278248#endif // _UTILITY_H
    279249
Note: See TracChangeset for help on using the changeset viewer.