X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgame%2Faccessguard.h;h=0f7bac76ab09f964e3623a14a0a22ec97b35af8d;hb=bdcd6a6268dec57ad352e30d86734b28a885a017;hp=26bbb4e0e99b3d7bb896c6376e7e1d22f9fae827;hpb=4f2c0342e7d2e60a39cec847ecdf981efcf39b15;p=libs%2Fgame.git diff --git a/source/game/accessguard.h b/source/game/accessguard.h index 26bbb4e..0f7bac7 100644 --- a/source/game/accessguard.h +++ b/source/game/accessguard.h @@ -69,7 +69,7 @@ public: void unblock() { get() = UNBLOCKED; } template - void check() { if(get()!=UNBLOCKED) throw invalid_access(T::describe()); } + void check(); }; @@ -97,6 +97,14 @@ template<> inline void AccessGuard::unblock() { unblock_all(); } +template +inline void AccessGuard::check() +{ + unsigned index = get_index(); + if((index inline std::string AccessGuard::Read::describe()