Bezug auf den gestrigen Post, das weckte mich heute Morgen auf. Warum funktioniert das eigentlich? Solange die Funktion test
betroffen ist, hat diese Funktion keinen Körper, also wie kann sie etwas ausführen? Ich möchte wissen warum und wie das funktioniert? Ich bin wirklich interessiert Ihre Antworten zu sehen.Warum das funktioniert (Vorlagen, SFINAE). C++
template<typename T>
class IsClassT {
private:
typedef char One;
typedef struct { char a[2]; } Two;
template<typename C> static One test(int C::*); //NO BODY HERE
template<typename C> static Two test(…); //NOR HERE
public:
enum { Yes = sizeof(IsClassT<T>::template test<T>(0)) == sizeof(One) };
enum { No = !Yes };
};
Vielen Dank im Voraus mit Hilfe, um dieses sehr interessante Phänomen zu verstehen.
Für die Standardese finden Sie unter '3.2/2' und '3.2/3' (beide auf Definition von "Verwendung" und die Folgen von„mit " etwas). –