template<typename T,void(*f)(T &v)> 	void foreach(T array[],unsigned size) 	{ 		for (int i = 0; i < size; ++i) 		{ 			f(array[i]); 		} 	}      template<typename T> 	void inc(T &v){++v;}  	template<typename T> 	void dec(T &v){--v;}      template<typename T>     void print(T  &v){cout<<" "<<v;}      int main(int argc, char const *argv[])     {     	/* code */     	int array[]={1,2,3,4,5,1,2,6,7};     	foreach<int,print<int>>(array,9);     	cout<<endl;     	foreach<int,inc<int>>(array,9);     	foreach<int,print<int>>(array,9);         cout<<endl;      	foreach<int,dec<int>>(array,9);     	foreach<int,print<int>>(array,9);         cout<<endl;     	system("pause");     	return 0;     }