diff --git a/stepmania/src/ModsGroup.h b/stepmania/src/ModsGroup.h index f9e592a262..5243436d81 100644 --- a/stepmania/src/ModsGroup.h +++ b/stepmania/src/ModsGroup.h @@ -47,7 +47,7 @@ public: } template - void Assign( ModsLevel level, U T::*member, const U &val ) + inline void Assign( ModsLevel level, U T::*member, const U &val ) { if( level != ModsLevel_Song ) m_Current.*member = val; @@ -55,10 +55,10 @@ public: m_[level].*member = val; } - // XXX U T::*member doesn't work, U T::*member[] doesn't work, U (T::*member)[] doesn't work. What is V? - template - void Assign_n( ModsLevel level, V member, size_t index, const U &val ) + template + inline void Assign_n( ModsLevel level, U (T::*member)[n], size_t index, const U &val ) { + DEBUG_ASSERT( index < n ); if( level != ModsLevel_Song ) (m_Current.*member)[index] = val; for( ; level < NUM_ModsLevel; enum_add(level, 1) )