Если я определяю указатель на объект, который определяет оператор [], есть ли прямой способ доступа к этому оператору из указателя?
Например, в следующем коде я могу напрямую обращаться к Vec функциям-членам (например, empty()) с помощью указателя ->, но если я хочу получить доступ к оператору [], мне нужно сначала получить ссылку на объект, а затем вызвать оператор.
#include <vector>
int main(int argc, char *argv[])
{
std::vector<int> Vec(1,1);
std::vector<int>* VecPtr = &Vec;
if(!VecPtr->empty()) // this is fine
return (*VecPtr)[0]; // is there some sort of ->[] operator I could use?
return 0;
}
Возможно, я ошибаюсь, но похоже, что (*VecPtr).empty() менее эффективен, чем VecPtr->empty(). Вот почему я искал альтернативу (*VecPtr)[].