Possible Duplicate:
Is it possible to write a C++ template to check for a function's existence?
say there are 2 classes:
struct A{ int GetInt(){ return 10; } };
struct B{ int m; };
I want to use object of type A or B in following function
tempate< typename T >
int GetInt( const T & t )
{
//if it's A, I'll call: return t.GetInt();
//if its' B, I'll call: return t.m;
}
Now, because there are whole bunch of classes, some contain GetInt(), some don’t, I don’t want to write specialization for each type, I only want to distinguish them by ‘containing GetInt() or not in compile time‘, how should I do this ?
Stealing from here, and assuming you fix your code so
GetIntis const, we get:This is pretty awful design though. You should fix the problem rather than apply a patch.