со ссылкой на вчерашний пост,
это разбудило меня этим утром. Почему это на самом деле работает? Что касается функции test
, эта функция не имеет тела, так как она может выполнять что-либо? Я хочу знать, почему и как это работает? Мне ДЕЙСТВИТЕЛЬНО интересно видеть ваши ответы.
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 };
};
Заранее спасибо с помощью, чтобы понять это очень интересное явление.