prog.cpp:5:16: error: ‘virtual float FncPtrBase::Get()’ cannot be overloaded with ‘virtual int FncPtrBase::Get()’
virtual float Get()=0;
^~~
prog.cpp:4:15: note: previous declaration ‘virtual int FncPtrBase::Get()’
virtual int Get()=0;
^~~
prog.cpp:8:3: error: expected ‘;’ after class definition
}
^
;
prog.cpp: In member function ‘V FncPtr<U, V>::CallGet()’:
prog.cpp:12:31: error: expected primary-expression before ‘.*’ token
V CallGet() {return (U.*Get)();}
^~
prog.cpp:12:33: error: ‘Get’ was not declared in this scope
V CallGet() {return (U.*Get)();}
^~~
prog.cpp: In member function ‘V FncPtr<U, V>::CallSet(V)’:
prog.cpp:13:31: error: expected primary-expression before ‘.*’ token
V CallSet(V x) {return (U.*Set)(x);}
^~
prog.cpp:13:33: error: ‘Set’ was not declared in this scope
V CallSet(V x) {return (U.*Set)(x);}
^~~
prog.cpp: At global scope:
prog.cpp:16:7: error: redefinition of ‘class FncPtr<U, V>’
class FncPtr:FncPtrBase {
^~~~~~
prog.cpp:11:7: note: previous definition of ‘class FncPtr<U, V>’
class FncPtr {
^~~~~~
prog.cpp:42:7: error: redeclared with 1 template parameter
class FncPtr:FncPtrBase {
^~~~~~
prog.cpp:11:7: note: previous declaration ‘template<class U, class V> class FncPtr’ used 2 template parameters
class FncPtr {
^~~~~~