Узнав, что вы можете эргономично преобразовыватьstd::vector
в std::span
фиксированного размера, я решил попробовать структурированные привязки для std::vector
:
auto _ = std::vector{ 1,2,3 };
std::span<int, 3> a = std::span(_).first<3>();
auto [b,c,d] = a;
Но не работает https://godbolt.org/z/nhrYn65dW
Однако из P1024 Улучшения удобства использования для std::span , которые были приняты, это должно быть законным
Добавить поддержку структурированной привязки для диапазона фиксированного размера? Единодушное согласие
Эта часть P1024 была отменена P2116. Обоснование исходит из LWG issue 3212, в котором подробно описаны проблемы, связанные с тем, как span
необходимо взаимодействовать с const
в интерфейсе, похожем на кортеж. После некоторых попыток переделки идеи ее просто решили убрать.