With dynamic polymorphism I can create interface, that cannot be instantiated, because some methods are pure virtual.
What is the equivalent with static polymorphism?
Consider this example:
template<typename T> string f() { return ""; }
template<> string f<int>() { return "int"; }
template<> string f<float>() { return "float"; }
I want to "disable" the first one, similarly as when I declare a method of a class to be pure virtual.