При наличии массива кортежей без констант в типе, возможно ли, чтобы диапазон кортежей с константным элементом ссылался на ранний массив?
В моем примере я хочу, чтобы std::span ссылался на std::array.
Очевидно, я могу заставить его скомпилироваться (переосмысление приведения обычно является злом...). Нарушает ли это строгие правила псевдонимов? Расположение двух типов кортежей должно быть одинаковым, но я не знаю, как const влияет на ситуацию.
https://godbolt.org/z/xs5dEb8Pd
Мой вариант использования — структура, подобная std::map, которая хранится во внутреннем std::array. Я хочу, чтобы первый элемент был постоянным, чтобы пользователь не мог изменить ключи изменения и испортить порядок. Я хочу, чтобы второй элемент был изменяемым, чтобы пользователь мог изменять значения на месте.
Я использую C++17 с внешней библиотекой, реализующей std::span.
Учитывая, что std::pair определяет порядок членов, делает то же самое с std::pair, а не со std::tuple, ок?
Подробнее здесь: https://stackoverflow.com/questions/798 ... collection