Сабж
#include <iostream>
template <typename T> struct A{
	T x;
	T f(double y) const { return x*y; }
	// альтерантивная реализация, если T*double не определен
	// T f(double y) const { return x; } 
};
struct B{ int z; };
int main(){
	A<double> a;  std::cout<<a.f(1.)<<'\n';
	A<B> b;       std::cout<<b.f(1.)<<'\n';
}
как включать ту или иную реализацию A::f в зависимости от того есть или нету операции T*double ?



