Есть ли способ объявить оператор [] для std :: pair? - PullRequest
0 голосов
/ 12 октября 2018

Я хотел объявить функцию operator [] для std :: pair, поэтому я записал следующий код:

template<typename T>
T& std::pair<T, T>::operator[](int x) {
    if (x == 0)
        return p.first;
    return p.second;
}

, но получил ошибку компиляции, поэтому есть ли способ объявить функцию operator []для std :: pair?

1 Ответ

0 голосов
/ 12 октября 2018

operator[] не может быть перегружен как функция, не являющаяся членом.А так как вам не разрешено изменять std::pair<>, невозможно получить доступ к парам first и second по индексу, используя operator[].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...