Re: Разные способы приведения типов
От: shank  
Дата: 12.09.06 12:30
Оценка:
Здравствуйте, Vamp, Вы писали:

V>4. reinterpret_cast.

V>Компилятор умывает руки. Используется для преобразований указателей на что угодно в указатели на что угодно другое.
Не всегда.
typedef void (*PF)();
void fun() {}

int main()
{
    PF pf = &fun;
    void* p = reinterpret_cast<void*>(pf);
}

"ComeauTest.c", line 7: error: invalid type conversion
      void* p = reinterpret_cast<void*>(pf);
                ^

Хотя VC такое и без кастов проглатывает.

V>4.1 С-каст

V>Когда компилятор С++ видит С-каст, он по собственному разумению вызывает один из трех _кастов.
Точнее сказать первый из списка

— a const_cast
— a static_cast
— a static_cast followed by a const_cast,
— a reinterpret_cast
— a reinterpret_cast followed by a const_cast

Re[2]: Поправка
От: shank  
Дата: 12.09.06 12:34
Оценка:
V>>4.1 С-каст
V>>Когда компилятор С++ видит С-каст, он по собственному разумению вызывает один из трех _кастов.
S>Точнее сказать первый допустимый из списка
S>

S>— a const_cast
S>— a static_cast
S>— a static_cast followed by a const_cast,
S>— a reinterpret_cast
S>— a reinterpret_cast followed by a const_cast

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.