Max
assert?
Не, ну в релизной версии
Igor
А вариадики навалять тут реально ли...
я думаю structured bindings не допускают вариадиков
Anonymous
А лучше — не использовать shared_ptr и delete.
Igor
magic_get же это вроде из коробки умеет, не?
он сильно мощнее и тяжелее, тут вроде всего несколько строчек :)
Anonymous
Есть reset. Если надо ликвидировать объект.
Max
Есть reset. Если надо ликвидировать объект.
Допустим кто-то уничтожил обьект каким-нибудь другим способом, что тогда?
Max
Тут речь идет о куске кода, который ни в коем случае не должен упасть
Deleted Account
Anonymous
Тут речь идет о куске кода, который ни в коем случае не должен упасть
А что будешь делать в случае невалидности указателя?
Yaroslav
затем что упадет. delete не приравнивает указатель к nullptr
Anonymous
Так и заверни все точки доступа этими return.
Anonymous
Автоматизации этому никакой нет.
Deleted Account
затем что упадет. delete не приравнивает указатель к nullptr
а ну лол, счас бы шаред птр делетом удалять
Max
Так и заверни все точки доступа этими return.
А на что проверять то? Допустим, никто не занулил указатель
Deleted Account
Yaroslav
а ну лол, счас бы шаред птр делетом удалять
Так кейс который выше предложен, так и делает
Anonymous
А на что проверять то? Допустим, никто не занулил указатель
А это уже ты никак не проверишь, увы и ах.
Deleted Account
Так кейс который выше предложен, так и делает
ну тогда это не реальный кейс а учебный
Anonymous
Можешь у аллокатора спросить, знает ли он такой кускок памяти.
Anonymous
Только врятли есть интерфейс к этому.
Anonymous
зачем свой если пони уже есть
Хочется своего коня.
Berkus
[Forwarded from 🦊 fox.cpp] Rust и Go на самом деле недостаточно быстрые, чтобы вытеснить C++ из, скажем, HPC. ^ олсо пиздеж, можно и в расте накрутить очень быстрый кот™
Berkus
Ну вот и отлично, нахер тогда C++ существует, кроме поддержки легаси-кода?
потому что разные языки существуют, чтобы давать разные возможности разным людям для разного
Max
Можешь у аллокатора спросить, знает ли он такой кускок памяти.
У него разве есть такой интерфейс? Или писать свой
Alexander "SonnySlave"
Ну вот и отлично, нахер тогда C++ существует, кроме поддержки легаси-кода?
так думаешь почему я порекомендовал валить на раст? потому что он тот же С++, только такой, который ты хочешь
Anonymous
У него разве есть такой интерфейс? Или писать свой
Я ниже уже сказал, что скорее всего нет.
Alexander "SonnySlave"
без легаси, с билд-системой и так далее
Alexander "SonnySlave"
у него нет легаси
Anonymous
Я ниже уже сказал, что скорее всего нет.
Замени operator new, кидай в хешсет адреса/размеры.
Anonymous
Только это дороговато выйдет.
Alexander "SonnySlave"
го - это немного другие яйца. А вот раст это именно конкурент крестам
Anonymous
Я уже го смотрел, норм тема, но правда для других задач. Верно.
Anonymous
Спасибо господа, пойду раст учить.
Anonymous
Замени operator new, кидай в хешсет адреса/размеры.
Ещё битмапу можно, но тяжко такую штуку держать под размер кучи.
Anonymous
Но опять же — статический анализ и беспощадно пиздить досками тех, кто достаёт содержимое shared_ptr и рулит им, как обычным указателем.
Anonymous
Да он там мой недоюмор всеръёз воспринял.
Anonymous
Про
Anonymous
Можешь у аллокатора спросить, знает ли он такой кускок памяти.
Vladislav
а не встречался ли кто, strcmp(ptr, "value) отрабатывает нормально, при смене на strcasecmp(ptr, "value") крешится на gcc 4.7.2 O2, с O0 тоже в порядке
Berkus
драствуй, бот
Anonymous
Vladislav
любопытно, мб где-то в другом месте убшечка затесалась?
может быть, пока не нашел. банальный char *ptr с ascii внутри, "value" тоже что ни на есть обычное
kitsu
крэшится с sigsegv полагаю?
kitsu
Если да, то вероятнее 1 запуск gdb все должен объяснить
Vladislav
а в посиксе внезапно есть
Berkus
а какая есть?
Vladislav
нет, а зачем?
Berkus
чертовы гуки, залезли даже в посикс!
Vladislav
:)
Vladislav
для ansi вообще пофигу
Vladislav
по дефолту
Anonymous
ASCII != ANSI, ремарочка.
Vladislav
да, но не суть. 7 бит. действительно думаешь проблема на самом деле в этом самом?
Vladislav
нет еще, и в асм еще не смотрел. все что пока знаю, что до strcasecmp в ptr лежит "TCP4\0" и сравнивается с "TCP4\0" константой. всё
Vladislav
окай
Vladislav
LANG=en_US
Vladislav
ну так прогони 😊
cppcheck говорит все хорошо
Alexander "SonnySlave"
cppcheck говорит все хорошо
ну зачем ты так со мной - я тебе про санитайзеры, а ты мне про статический анализ
Vladislav
других анализаторов не использовал, но могу прогнать. какой лучше?
Alexander "SonnySlave"
не надо так 😊
Alexander "SonnySlave"
ubsan, asan, tsan
Vladislav
не надо так 😊
ок, дай пример санитайзера