目录
std::is_pointer
std::is_pointer - cppreference.com
std::is_pointer的内部实现如下,is_pointer继承了__is_pointer_helper,实例化__is_pointer_helper时,传递的参数是typename remove_cv<_Tp>::type>::type类型
这个类型前的typename的作用就是告诉这个是个成员类型。要直接写remove_cv<_Tp>::type>::type的话那就变成了一个成员变量。
/// is_pointer
template<typename _Tp>
struct is_pointer
: public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
{ };
下面我们来讲解一下remove cv.定义如下:
/// remove_cv
template<typename _Tp>
struct remove_cv
{
typedef typename
remove_const<typename remove_volatile<_Tp>::