4
好下面的代码是从另一个计算器问题 here结构体旁边的< >是做什么的?
template<typename T>
struct remove_pointer
{
typedef T type;
};
template<typename T>
struct remove_pointer<T*>
{
typedef typename remove_pointer<T>::type type;
};
复制虽然我不明白,这是在模板递归定义,令我困惑的是线
template<typename T>
struct remove_pointer<T*>
意思呢remove_pointer将导致T = int *?为什么不会T = int **?解释赞赏。
感谢您的解释。但在此之前我接受的答案,我只是想确保我其实明白你说什么就有什么,remove_pointer 将调用函数在顶部,而remove_pointer 会在右下角调用该函数?而指针专门化必须与模板一起使用?或者它一般的作品?有没有网上提到这个? – Mox
是的,你是对的。 [这里](https://www.youtube.com/watch?v=vwrXHznaYLA)是一个视频,详细解释了模板的类型推演。他在某些时候还提到专业化引入额外的模板参数的情况。我也会编辑答案,试图让它更清楚一点 – user463035818