指的是昨天的帖子, 今天早上醒來了。爲什麼這實際上工作?只要函數test
是關於這個函數沒有主體,那麼它如何執行任何操作?我想知道爲什麼以及如何工作?我真的很想看到你的答案。爲什麼這個工程(模板,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 };
};
在此先感謝幫助理解這一非常有趣的現象。
對於Standardese,見'3.2/2'和'3.2/3'(包括對 「使用」 的定義和使用後果的」 「某事)。 –