我有一段代码,如下所示:
std::array<CPlayer,MAX_PLAYERS> Player;
#define Player(playerid) Player[playerid]
然后按如下方式使用它:
Player(id).SomeMethod(some params);
但是定义很丑陋,我想尽可能地保留它的 C++ 方式,并且 std::array 确实有 [] 运算符但没有 () 运算符所以我尝试添加这个:
template < class T, size_t N > T& std::array<T, N>::operator()(int index)
{
return this->at(index);
}
但它给了我以下错误:
error C2039: '()' : is not a member of 'std::array<_Ty,_Size>'
我能做些什么呢?我一无所知。