История изменений
Исправление alysnix, (текущая версия) :
И это никакой не аналог того, как работает dynamic_cast.
да ты шо! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.
понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно нужен.
кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.
Исправление alysnix, :
И это никакой не аналог того, как работает dynamic_cast.
да ты шо! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.
понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно потребуется если случаи сложные.
кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.
Исходная версия alysnix, :
И это никакой не аналог того, как работает dynamic_cast.
да ты шо, а мы не знали! в данном случае выполняются все нужности динамик каста, но дешевыми средствами. динамик каст в общем случае требует rtti, а мы хотим все сделать дешево и сердито.
понятно, что даже если погромист пишет динамик каст, компилятор все равно попытается его свести к статическому, и реальный динамик будет испускать только в случае, если это не получается. но rtti все равно потребуется если случаи сложные.
кстати функции кастов лучше в базовый класс не совать, а делать статическими в потомках. тогда их можно разнести по хидерам.