Size: a a a

2020 August 05

АК

Александр Караев... in pro.cxx
а это кто
У T* нет методов которые есть у optional<T&> значит это не одно и тоже
а как должен себя вести operator= для optional<T&>? rebind или assign through?
источник

а

а это кто in pro.cxx
концепт nullable сложнее optional так что если нужно иногда возвращать ссылку, а иногда ничего, лучше использовать optional<&T>
источник

O

Ofee in pro.cxx
Побитый Кирпич
Семантика указателя в частности это nullable ссылка
Я думаю, что у них, всё же, разная семантика, при виде std::optional<T&> я бы ожидал невладеющую nullable ссылку, в то время как без документации понять, что из себя представляет T* сложно
источник

ПК

Побитый Кирпич... in pro.cxx
Александр Караев
а как должен себя вести operator= для optional<T&>? rebind или assign through?
Скорее всего rebind
источник

ПК

Побитый Кирпич... in pro.cxx
хотя не
источник

а

а это кто in pro.cxx
В Rust Option<&T> не заменяют на T* потому что первый безопаснее второго
источник

ПК

Побитый Кирпич... in pro.cxx
Александр Караев
а как должен себя вести operator= для optional<T&>? rebind или assign through?
Хороший вопрос
источник

A

Alex in pro.cxx
а это кто
концепт nullable сложнее optional так что если нужно иногда возвращать ссылку, а иногда ничего, лучше использовать optional<&T>
чем сложнее? Мне тоже кажется, что это одно и то же
источник

АК

Александр Караев... in pro.cxx
источник

ПК

Побитый Кирпич... in pro.cxx
Ofee
Я думаю, что у них, всё же, разная семантика, при виде std::optional<T&> я бы ожидал невладеющую nullable ссылку, в то время как без документации понять, что из себя представляет T* сложно
В высокоуровневом коде T* это как раз и будет невладеющая nullable ссылка.
источник

ПК

Побитый Кирпич... in pro.cxx
Хотя всё таки считаю, что в С++ не хватает nullable ссылки явной. То есть тот же T*, только без арифметических операций указателя
источник

A

Alex in pro.cxx
std::unique_ptr<T>?
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
std::unique_ptr<T>?
Это владеющая
источник

а

а это кто in pro.cxx
Alex
std::unique_ptr<T>?
это владеющая ссылка
источник

O

Ofee in pro.cxx
Побитый Кирпич
В высокоуровневом коде T* это как раз и будет невладеющая nullable ссылка.
Да, но это должно быть подкреплено документацией, гайдлайнами или чем-то ещё

Что же означает T* в чужом коде — не всегда очевидно, сырые указатели могут нести разный смысл, а условный std::optional<T&>  — нет
источник

АК

Александр Караев... in pro.cxx
Ofee
Да, но это должно быть подкреплено документацией, гайдлайнами или чем-то ещё

Что же означает T* в чужом коде — не всегда очевидно, сырые указатели могут нести разный смысл, а условный std::optional<T&>  — нет
два чая этому господину
источник

VU

Vadim Ushakov in pro.cxx
Побитый Кирпич
Это владеющая
А weak_ptr?
источник

ПК

Побитый Кирпич... in pro.cxx
Vadim Ushakov
А weak_ptr?
Эта требует слишком много от объекта под ней
источник

NI

Nikita Ivanov in pro.cxx
optional<T&> интересная идея
источник

NI

Nikita Ivanov in pro.cxx
жаль что в с++ нет как в шарпе ? для всего поддерживающегo pointer like access
источник