prog.cpp:5:73: error: type/value mismatch at argument 1 in template parameter list for ‘template<class> class Engine’
template< template<class> class Engine > class Car : public Engine<Car> { };
^
prog.cpp:5:73: error: expected a type, got ‘Car’
prog.cpp:6:75: error: type/value mismatch at argument 1 in template parameter list for ‘template<class> class Engine’
template< template<class> class Engine > class Plane : public Engine<Plane> { };
^
prog.cpp:6:75: error: expected a type, got ‘Plane’
prog.cpp: In function ‘int main(int, char**)’:
prog.cpp:20:22: warning: unused variable ‘myTesla’ [-Wunused-variable]
Car<ElectricEngine> myTesla;
^
prog.cpp:21:22: warning: unused variable ‘myMooney’ [-Wunused-variable]
Plane<GasEngine> myMooney;
^
prog.cpp:24:20: warning: unused variable ‘ec’ [-Wunused-variable]
ElectricCarEngine ec;
^