|
constexpr OptionalRef(T& other) noexcept : data_(&other) {} |
В реализации OptionalRef для взятия адреса не используется std::addressof. Это не позволяет полноценно использовать OptionalRef для класса с перегруженным operator &.
struct CE { void operator & () {} };
CE ce;
OptionalRef ref(ce); // CE: cannot initialize...
userver/universal/include/userver/utils/optional_ref.hpp
Line 38 in cbdb847
userver/universal/include/userver/utils/optional_ref.hpp
Line 109 in cbdb847
В реализации
OptionalRefдля взятия адреса не используетсяstd::addressof. Это не позволяет полноценно использоватьOptionalRefдля класса с перегруженнымoperator &.