template int get_corners(){return 0;}class Figure{};class Square: public Figure{};template<> int get_corners(){return 4;}template Figure* create_suaqre_fromT(){ if (get_corners() == 4) return new Square; else return 0;}
template Figure* create_suaqre_fromT(){ if (get_corners() == 4) return new Square; else return 0;}
A voobsche Vam vse ravno v storonu shablonov i RTTI nado :-)