Size: a a a

2020 October 14

m

magras in pro.cxx
Побитый Кирпич
Дак как ты такой класс членом сделаешь и чтоб get_T() был const?
Так не надо пытаться обмануть компилятор и систему типов утверждая что LazyValue - неизменяемый объект.
источник

AS

Alex Sandrov in pro.cxx
boost в качестве коробки меня вполне устраивал, но только вот иногда его корёжит от новых версий плюсов 😞
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Так не надо пытаться обмануть компилятор и систему типов утверждая что LazyValue - неизменяемый объект.
Он изменяемый только в первый раз, а потом всё норм
источник

DF

Dollar Føølish in pro.cxx
Я немношк
источник

ПК

Побитый Кирпич... in pro.cxx
Так то никакой LazyValue не нужен, просто убрать const у геттера. Только это не решение так как транзитивно убирает const отовсюду
источник

m

magras in pro.cxx
Побитый Кирпич
Он изменяемый только в первый раз, а потом всё норм
Тогда можно этот "первый раз" сделать на еще неконстантном объекте.
источник

DF

Dollar Føølish in pro.cxx
+++
источник

DF

Dollar Føølish in pro.cxx
Подход с мутабле лютый костыль
источник

DF

Dollar Føølish in pro.cxx
Но в принципе в рамках плюсов
источник

PS

Pavel Samolysov in pro.cxx
Зачем-то же этот кейворд для полей класса придумали
источник

DF

Dollar Føølish in pro.cxx
Да,для мутексов и тп
источник

m

magras in pro.cxx
Pavel Samolysov
Зачем-то же этот кейворд для полей класса придумали
Он все еще полезен для мютексов.
источник

DF

Dollar Føølish in pro.cxx
Те поля которые не входят в стейт
источник

DF

Dollar Føølish in pro.cxx
Служебные или как их назвать
источник

PS

Pavel Samolysov in pro.cxx
Все равно если чужая либа например и нет исходников, то нельзя сказать вот конст метод и он тред сейф, поэтому странное предположение
источник

DF

Dollar Føølish in pro.cxx
Да, нельзя, но ленивый геттер достоверно модифицирует же
источник

PS

Pavel Samolysov in pro.cxx
Мол раз конст то тредсейф
источник

DF

Dollar Føølish in pro.cxx
Так всегда же есть конст каст к тому же
источник

DF

Dollar Føølish in pro.cxx
В общем я считаю что ленивый геттер через мутабле прямая дорога к уб
источник

m

magras in pro.cxx
Pavel Samolysov
Все равно если чужая либа например и нет исходников, то нельзя сказать вот конст метод и он тред сейф, поэтому странное предположение
Я работал с библиотекой, которая снимала конст с указателя на данные и меняла их. И я тоже словил на этом проблемы в многопоточном коде. mutable - это тот же const_cast.
источник