Size: a a a

2020 May 28

I

Ioann_V in pro.cxx
Pepe 🐸
ну это не важно в данном контексте. Я о том что лайфтайм не понятно кем контролируется
Важно, тогда weak :)
источник

К

Константин in pro.cxx
Числа и строки без проблем парсятся
источник

P

Pepe 🐸 in pro.cxx
Pepe 🐸
ну это не важно в данном контексте. Я о том что лайфтайм не понятно кем контролируется
если объектом владеет один пойгнтер, а потом кто то берет и захватывает мембера
источник

AZ

Alexander Zaitsev in pro.cxx
Pepe 🐸
ну это не важно в данном контексте. Я о том что лайфтайм не понятно кем контролируется
именно поэтому мембер должен быть std::shared_ptr какой-то
источник

AZ

Alexander Zaitsev in pro.cxx
иначе отхватишь старый-добрый use-after-что-нибудь
источник

A

Andrei Konshyn in pro.cxx
Alexander Zaitsev
именно поэтому мембер должен быть std::shared_ptr какой-то
так в данном случае лучше weak, как @Ioann_V предлагает
источник

AZ

Alexander Zaitsev in pro.cxx
Andrei Konshyn
так в данном случае лучше weak, как @Ioann_V предлагает
в смысле возвращать или внутри хранить?
источник

A

Andrei Konshyn in pro.cxx
Alexander Zaitsev
в смысле возвращать или внутри хранить?
возвращать
источник

AZ

Alexander Zaitsev in pro.cxx
Andrei Konshyn
возвращать
да, согласен
источник

P

Pepe 🐸 in pro.cxx
Alexander Zaitsev
иначе отхватишь старый-добрый use-after-что-нибудь
да, но разве не лучше за этим следить не захватывая владение мемберов через публичные функции? Например auto a = some_obj.NodeList() где NodeList возвращает шейред или юник на список нодов в some_obj, который в свою очередь контролиоуется кем то еще
источник

P

Pepe 🐸 in pro.cxx
получается есть жизнь some_obj и есть жизнь некой переменной a
источник

AZ

Alexander Zaitsev in pro.cxx
Pepe 🐸
да, но разве не лучше за этим следить не захватывая владение мемберов через публичные функции? Например auto a = some_obj.NodeList() где NodeList возвращает шейред или юник на список нодов в some_obj, который в свою очередь контролиоуется кем то еще
мне сложно сказать, какая там архитектура у тебя просто
источник

AZ

Alexander Zaitsev in pro.cxx
вообще, отдать лайфтаймы какому-то менеджеру, а ссылки уже раскидывать куда хочешь - здравая идея
источник

DA

Dr. Alan in pro.cxx
Есть 2 template
template<class T> class CB{
CBI<T> begin();
}
и
template<class T> class CBI
и я хочу сделать функцию в 1 темплейте которая возвращает переменную класса CBI, но он не видит второй темплейт, как это исправить?
источник

АК

Александр Караев... in pro.cxx
Dr. Alan
Есть 2 template
template<class T> class CB{
CBI<T> begin();
}
и
template<class T> class CBI
и я хочу сделать функцию в 1 темплейте которая возвращает переменную класса CBI, но он не видит второй темплейт, как это исправить?
forward declaration
источник

A

Alik in pro.cxx
Dmitry
спасибо, ещё одно мнение в копилку
я тоже склоняюсь, что этот вариант не UB
В чем проблема? Многие продакшаны кишат UB, если настолько неуверен, просто нужно запустить юнит тесты на конкретной платформе и с большой долей вероятности не будет проблем.
источник

AZ

Alexander Zaitsev in pro.cxx
Alik
В чем проблема? Многие продакшаны кишат UB, если настолько неуверен, просто нужно запустить юнит тесты на конкретной платформе и с большой долей вероятности не будет проблем.
за такие советы и варна выдать нежалко :)
источник

AN

Alexander N in pro.cxx
Забавно. Писал я тут прогу. Вроде ubsan ничего не нашел, хз конечно может есть и не палящиеся косяки, но вроде чисто. При том, что половина юзает C либы всякие
источник

AZ

Alexander Zaitsev in pro.cxx
ubsan не все UB находит, так что гарантией особо не является :)
источник

NI

Nikita Ivanov in pro.cxx
Alexander Zaitsev
за такие советы и варна выдать нежалко :)
красава убей
источник