MyType& typedData = *reintepret_cast<MyType*>(data);
sendTyped(typedData);
}
1. Можно ли такое делать (разумеется если уверен что data указывает на объект нужного типа)
2. Правильно ли я понимаю, что после reintepret_cast обращаться к data нельзя, это будет UB?
0) это не совсем TypeErasure 1) для reintepret_cast определено, что можно, там примерно можно кастовать из T* в void* и назад в T* и ничего не изменится
1. да, если это MyType* 2. нет
вообще все вопросы кастов они примерно а) читать и писать можно только объект номинального типа, который был создан по этому адресу (+ еще три типа-исключения) б) промежуточные указатели не должны быть на типы с более жестким alignment
Обсуждают сегодня