读书人

Loki等等型识别

发布时间: 2012-08-29 08:40:14 作者: rapoo

Loki之类型识别

这是Loki里的类型识别的测试,分别测试普通类型,指针类型和类成员指针类型。


下面是测试代码,测试环境是gcc 4.6.3

NullType.h

#include <iostream>#include <vector>using namespace std;#include "PointerTraits.h"class T{public:int a;};int main(int argc, char *argv[]){bool iterIsPtr = TypeTraits<vector<int>::iterator>::isPointer;cout<<"vector<int>::iterator is "<<(iterIsPtr ? "pointer": "type")<<"\n";iterIsPtr = TypeTraits<int*>::isPointer;cout<<"int* is "<<(iterIsPtr ? "pointer": "type")<<"\n";iterIsPtr = TypeTraits<int*>::isMemberPointer;cout<<"int* is member pointer ("<<(iterIsPtr ? "yes": "no")<<")\n";/* * int T::* 是一个指向类T的int的指针。 * 如:int T::* c = &T::a; *///int T::* c = &T::a;iterIsPtr = TypeTraits<int T::*>::isMemberPointer;cout<<"int* is member pointer ("<<(iterIsPtr ? "yes": "no")<<")\n";return 0;}

编译:g++ main.cpp

运行:./a.out

输出:

vector<int>::iterator is type
int* is pointer
int* is member pointer (no)
int T::* is member pointer (yes)




读书人网 >编程

热点推荐