v******y 发帖数: 84 | 1 template int foo(const T &);
要specialization T 到const char *
咋是template <>int foo(const char *const &);
而不是template <>int foo(const const char * &); | R*********w 发帖数: 23 | 2 没错啊。const T & with T as "const char*", const 指定 T 本身为常量。这里T是
指针,可不就是
const char * const &
上面第二个const 从模版参数来,限定char指针为常量。第一个const从const char*来。 | v******y 发帖数: 84 | 3 函数的argument要一个常量T的reference,因为T指向常量的指针,所以
speciliazation是=
指向常量的指针的常量的reference,那么这个就好const char *const &
明白。很多时候第一次的理解是要一个指向常量指针,这个指向一个常量 const const
char *&
来。
【在 R*********w 的大作中提到】 : 没错啊。const T & with T as "const char*", const 指定 T 本身为常量。这里T是 : 指针,可不就是 : const char * const & : 上面第二个const 从模版参数来,限定char指针为常量。第一个const从const char*来。
|
|