Size: a a a

cxx.Дискуссионная

2021 October 24

ES

Eyed Shovel in cxx.Дискуссионная
Для void* это работает, потому что размер указателя для всех типов одинаков
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Да ты рофлишь что-ли, я не понимаю?
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Причём здесь размер указателя
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Я говорю про адресную арифметику над void*
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Что было бы логично, что она не работает, если размер void нулевой
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Погоди, при чём тут какие-то хаки. Есть API A и API B.

Для API B хочешь использовать новую сигнатуру с новым типом void в качестве аргумента, якобы ради совместимости с API A.

Вопрос, нафига: в API A не было ни одной сигнатуры с void, где ты собрался тут совместимость обеспечивать?
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Спасибо блин, я дебагал бинарники без декомпиляции и писал на асме не очень тривиальные программы
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
И каким вообще образом собираешься использовать void?
источник

ES

Eyed Shovel in cxx.Дискуссионная
А основ не понял. Переменная - это именованная область памяти. Как ты собрался выделить память размером 0?
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Так всё может привестись во время компиляции в тип void
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Да при чём тут вообще компиляция и void...
источник

ПК

Паша Калугин... in cxx.Дискуссионная
Зачем её вообще выделять?
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Ты предлагаешь использовать новый тип для якобы обеспечения совместимости между API.
Каким образом, и зачем?
источник

ES

Eyed Shovel in cxx.Дискуссионная
Затем, что переменная - именованная область памяти
источник

ES

Eyed Shovel in cxx.Дискуссионная
Если тебе ничего не надо выделять, бери void*
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Ладно, это и правда выглядит как дискуссия на кафедре пустых множеств, где можно делать любой вывод, и он будет верным и бесполезным
источник

ES

Eyed Shovel in cxx.Дискуссионная
Надо вообще остановиться на том, что C++ прошёл долгую эволюцию, чтобы избавиться от разыменования nullptr, а тут чувак предлагает ввести ещё одну такую же хрень
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Да непонятно ещё зачем, в чем мотивация
источник

ES

Eyed Shovel in cxx.Дискуссионная
Зачем, мистер Андерсон
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
источник