Код: Выделить всё
constexpr T& value() &;
constexpr const T& value() const&;
constexpr T&& value() &&;
constexpr const T&& value() const&&;
Я работаю над классом, который будет иметь аналогичный API, поэтому мне нужно чтобы понять: почему это необходимо?
Почему необходимы перегрузки move-reference поверх const и не-
Код: Выделить всё
const
Иногда в стандарте перечисляются подобные прототипы только для того, чтобы на самом деле требовалось меньше перегрузок. Но стандартная библиотека MSVC на самом деле имеет разные перегрузки для каждой комбинации, например, соответствующие std::expected::value.
Подробнее здесь: https://stackoverflow.com/questions/788 ... -of-its-me