Нужно ли заменять const SomeType* на std::optional<std::reference_wrapper<const SomeType>>?
2) Если заменить, будет ли како-нибудь оверхед на эти обёртки?
Сложно спутать с span<const T>, например
ну просто поинтер не должен быть на массив
там должен быть optional_view не имеющий адресной арифметики и оператора delete
да, так было бы лучше, согласен. но имхо есть минус: в этом случае сырые указатели в программе становятся не нужны вообще, и по сути должны уехать только в низкоуровневый код. Не знаю, может так и правильнее, но у меня возникает ощущение какой-то избыточности сущностей
``` template<typename T> using optional_view = std::optional<std::reference_wrapper<T>>>; ``` ?
да, это последняя семантика сырых указателей
А чем это лучше optional<T&> ?
Обсуждают сегодня