This commit is contained in:
Light-City
2020-03-03 11:13:16 +08:00
parent 16c12a3bc6
commit 1dca8dee82
84 changed files with 25 additions and 25 deletions

View File

@@ -0,0 +1,41 @@
//
// Created by light on 20-1-5.
//
#include <iostream>
using namespace std;
template<typename T>
class IsClassT {
private:
typedef char One;
typedef struct {
char a[2];
} Two;
template<typename C>
static One test(int C::*);
// Will be chosen if T is anything except a class.
template<typename C>
static Two test(...);
public:
enum {
Yes = sizeof(IsClassT<T>::test<T>(0)) == 1
};
enum {
No = !Yes
};
};
struct A {
};
int main() {
// 0不能转换为int int::*因为int不是类所以它不能有成员指针。
cout << IsClassT<int>::Yes << endl;
cout << IsClassT<A>::Yes << endl;
return 0;
}