之前在学习c++模板的时候,一直没留意到在非类型参数中对指针和引用有着一些限制,今早在复学模板的时候才注意到书上标明,指针和引用作为模板的非类型参数传递时必须要求是全局或者静态变量.其实不难想到,模板参数是在预编译期间进行传递并被编译的,所以对于非类型参数来说,必须是常量,也就是说,对于指针和引用,它们在整个进程生命周期内,必须有着唯一一个且永久有效的线性地址,所以也就要求指针和引用表示的变量必须是全局或者静态变量. 但因为离开学校太久,对编译原理的一些知识已经淡忘,依稀记得无论全局变量还是局部…