Hi,
Возник теоретический спор об эквивалентности шаблонного и динамического полиморфизма в C++
Был предложен такой контрпример тезису об эквивалентности как виртуальный конструктор:
class obj
{
public:
virtual int foo (int) = 0;
};
class A : public obj;
class B : public obj;
...
/* returns A is config have 'a', B is 'b', and so on */
obj * getfromconfig (const char *filename);
int
entry (obj *x)
{
return x->foo();
}
int
main (void)
{
return entry (getfromconfig("my.xml"))
}
Как бы вы переписали этот код с шаблонным полиморфизмом вместо виртуальных функций?
---
With best regards, Konstantin