起因是源于c++ primer16.3中的一个例子:
template <class T>
string debug_rep(const T &t)
{
ostringstream ret;
ret << t;
return ret.str();
}
实例化上述模版
const string *sp = &s;
cout << debug_rep(sp) << endl;
T 的类型为 const string*,因此实例化后的函数为:
<string debug_rep(const const T* &)>
表示reference to an const object which is a pointer to const object.
The reference cannot be used to modify the pointer itself and the pointer cannot be used to modify the object to which it points;