Pull to refresh
16
0
Привееееееееееееееееееееееееееееееееееет @mitinsvyat

Привееееееееееееееееееееееееееееееееееееееееееееет

Send message
Это точно все?
Например, нельзя иметь бесконечную рекурсию в C++.
Про то что указатель на функцию преобразовывать в void* тоже не очень законно тут тоже не вижу.
Или это + дока по си должны все закрыть?
Я однажды гуглил список всех УБ под С++, но не осилил их найти.
Теперь каждый раз когда что-то делаю в С++, узнаю что есть еще УБ где-то почему-то.
УБ похожи на покемонов.
Я через memcpy все доставал
github.com/wasiher/member_pointers_linux/blob/master/member_pointers_linux.cpp#L11
Сколько знаю, компилятору может быть болезненно работать с ассемблером.
Самое безопасное, наверное, именно чтоб кастами разными приводить.
Я как-то не спорю ни с чем, просто хотел сказать что ассемблер тут не особо нужен вообще впринципе. Есть же надежная функция memcpy)
Ну и си сам по себе хорошо с памятью все достает и кладет. Можно при желании неявно вызвать тот же memcpy без его прямого вызова
Видел эту статью из 2003 года. Пришлось разбираться самому, потому что из кода видно только то что sizeof указателя на метод больше обычного указателя.
gcc и clang всегда размером с 2 указателя
msvc как понял: 1 указатель + 3 32битных инта (ну и компиль обрубает эти инты, если не нужны по какой-то причине)
Указатель на необъявленный класс — это максимальный размер. Или ошибаюсь?
Ну подумай. Что может быть более неопределенное, чем указатель на необъявленный класс? И в каком случае компилятор не может делать предположения относительно стуктуры класса совсем?
Что-то я пробовал. Не особо росло в случае clang и gcc.
Если сможешь что-то нашаманить и скинуть, то буду рад.
Если брать указатель на неизвестную структуру, то в gcc и clang будет 16.
gcc: rextester.com/CUCL60020
clang: rextester.com/ZCB93726
Если брать msvc, мало понимаю что там и почему происходит. Там размер 24, и что-то может и есть.
msvc: rextester.com/SNU4983
Может, если будет не лень, могу попробовать разобраться что происходит в MSVC, если кому надо…
Я согласен с несогласием, но про отладочную информацию это для красного словца было сказано или реально что-то такое есть?
С эти сложно поспорить, но как это стыкуется с предыдущими высказываниями?
Зачем ты тогда делал целый доклад про то что под капотом, если не следует делать предположений никаких?
Или смотреть ассемблер — это не предположение (или не под капотом?), а простой примерчик — это предположение о том что под капотом?
Я точно делаю что-то не то?
В статье тоже добавил
Добавил что все для X86-64
Имел в виду, что указатель на метод 16 байт в 64 битах, и 8 байт в 32 битах.
16 байт для x86-64
8 байт для x86-32
Я тут почекал.
В чем я ошибся?
rextester.com/KSHZ89131
Это я согласен
Согласен со всем.
Не понравилось что в страшилке не было описано почему оно так, с чем и пытался разобраться тоже.

А нельзя организовать чатик в телеграме?

Риппл молодцы в этом плане

Information

Rating
Does not participate
Registered
Activity