如何判断一个模板被实例化了几次?

突然冒出一个想法,该如何确定一个模板类被实例化了几次?使用一个静态变量进行统计就可以了

#include <iostream>
#include <vector>
using namespace std;


template<typename T,typename pointer>
class Sample{
public:
	static int instance_counter;
public:
	Sample(){
		++instance_counter;
		cout<<"instance "<<instance_counter<<" times"<<endl;
	}
};

template<typename T,typename pointer>
int Sample<T,pointer>::instance_counter=0;


int _tmain(int argc, _TCHAR* argv[])
{

	Sample<int,int *> s1;
	Sample<int,int *> s2;
	Sample<const int,int *> s3;
	Sample<int,const int *>s4;
	Sample<const int,const int *> s5;

	return 0;
}

结果:

如何判断一个模板被实例化了几次?_第1张图片



你可能感兴趣的:(模板实例化)