Size: a a a

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

2021 July 07

K

Kirill in cxx.Дискуссионная
Когда приводишь к void*
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Фраза звучит как "вилка для разведения костра норм"
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Ну приводи к const void*
источник

K

Kirill in cxx.Дискуссионная
А если изначально тип не был константным?
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Берешь cv-квалификатор, извлекаешь из типа, добавляешь их к новому типу. Проблемы где?
источник

K

Kirill in cxx.Дискуссионная
Да нигде, const cast выручает
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Или проблемы в том, что stl и Александреску не читали?
источник

K

Kirill in cxx.Дискуссионная
Хз где ты тут проблемы увидел ) сам придумал что то
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Ну ты предложил const_cast делать для type erasure. Это как шуруповёртом варить борщ
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Вещи и задачи вообще не связанные
источник

K

Kirill in cxx.Дискуссионная
Нет же, это для того чтобы убирать cv у типа
источник

@N

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

@N

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

K

Kirill in cxx.Дискуссионная
А если функция принимает только void*, без cv?
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Ну это проблемы функции и проблемы нарушения контрактов
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Это с type erasure не связано
источник

K

Kirill in cxx.Дискуссионная
Да не проблема это
источник

@N

@urandon Nikita Khom... in cxx.Дискуссионная
Нет. Это нарушение cv-контракта, если ты туда const пихаешь
источник

K

Kirill in cxx.Дискуссионная
источник

K

Kirill in cxx.Дискуссионная
Вот пример как это используется
источник