prog.cpp:14:6: error: redefinition of ‘template<class T, class> T foo(T)’
prog.cpp:7:6: error: ‘template<class T, class> T foo(T)’ previously declared here
prog.cpp: In function ‘int main()’:
prog.cpp:24:12: error: no matching function for call to ‘foo(double)’
prog.cpp:24:12: note: candidate is:
prog.cpp:7:6: note: template<class T, class> T foo(T)
prog.cpp:7:6: note: template argument deduction/substitution failed:
prog.cpp:6:22: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’