- Timestamp:
- Sep 7, 2017, 10:34:23 AM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 871cdb4
- Parents:
- 26238c1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Common/utility.h
r26238c1 r234223f 255 255 ~ValueGuardPtr() { if( ref ) *ref = old; } 256 256 }; 257 258 template< typename aT > 259 struct FuncGuard { 260 aT m_after; 261 262 template< typename bT > 263 FuncGuard( bT before, aT after ) : m_after( after ) { 264 before(); 265 } 266 267 ~FuncGuard() { 268 m_after(); 269 } 270 }; 271 272 template< typename bT, typename aT > 273 FuncGuard<aT> makeFuncGuard( bT && before, aT && after ) { 274 return FuncGuard<aT>( std::forward<bT>(before), std::forward<aT>(after) ); 275 } 257 276 258 277 template< typename T >
Note: See TracChangeset
for help on using the changeset viewer.