//以指针为模板参数     template<int *p >     struct wrapper     {     	/* data */     	int get(){return *p;}     	void set(int v){*p=v;}     };   //以引用为模板参数     template<int &p>     struct wrapper1     {     	/* data */     	int get(){return p;}     	void set(int v){p=v;}     };      int global_var=0;     int main(int argc, char const *argv[])     {     	wrapper<&global_var>gwrapper;     	gwrapper.set(1);     	cout<<gwrapper.get()<<endl;      	wrapper1<global_var>gwrapper1;     	gwrapper1.set(2);     	cout<<gwrapper1.get()<<endl;     	return 0;     }