LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

И это никакой не аналог того, как работает dynamic_cast.

да ты шо! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.

понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно нужен.

кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.

Исправление alysnix, :

И это никакой не аналог того, как работает dynamic_cast.

да ты шо! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.

понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно потребуется если случаи сложные.

кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.

Исходная версия alysnix, :

И это никакой не аналог того, как работает dynamic_cast.

да ты шо, а мы не знали! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.

понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно потребуется если случаи сложные.

кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.