Из cppreference:
constexpr reference operator[](index_type idx) const; constexpr reference operator()(index_type idx) const;
Возвращает ссылку на элемент
idx
-th последовательности. Поведение не определено, еслиidx
находится вне допустимого диапазона (т.е. Если он меньше нуля или больше или равенsize()
).
Имеет смысл перегрузить operator[]
для индексирования, поскольку span представляет объект, который может ссылаться на непрерывную последовательность объектов, но почему operator()
, оператор вызова функции, также перегружен с той же целью? Я не верю, что в стандартной библиотеке ничего подобного не было.