Re[4]: Виртуальный конструктор на шаблонах?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 06.08.14 13:58
Оценка:
Здравствуйте, Tilir, Вы писали:

T>Хочется вообще избавиться от виртуальных функций, в чистом виде заменив рантайм-полиморфизм шаблонным. В этом варианте она все таки осталась.

Тогда так. Но в рантайме это будет работать одинаково т.к. параметризовать можно только до компиляции кода. Т.е. ты не получаешь полиморфного поведения в рантайме.

template<typename T>
struct entryByFile: public T
{
    int entry() 
    {
        return T::foo();
    }
};

struct fileA 
{
    int foo() {std::cout<<"DO something"<<std::endl; return 0;}
};

struct fileB
{
    int foo() {std::cout<<"DO nothing"<<std::endl; return 0;}
};

int main() 
{
    return entryByFile<fileB>().foo();
}
Sic luceat lux!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.