模板类型后的星号“ *”是什么意思?

时间:2019-01-16 20:54:40

标签: c++ templates

我来了一个模板代码,该模板代码在模板类型后使用*

  ...
  template <typename _Up, typename _Ep, typename = void>
  struct _Ptr
  {
      using type = _Up*; 
  };
  ...

我看到的另一种用法

   ...
   template <typename T, typename \
   std::enable_if<std::is_integral<T>::value,T>::type* = nullptr>
   ...

此结构在哪里描述?

1 个答案:

答案 0 :(得分:6)

意味着对于任何类型都意味着相同的含义-它是指向type内部定义的std::enable_if的指针,该指针专门用于真实条件,默认情况下为void-产生所有熟悉的void*

在一个完全不同的(可能是不明智的)注释上,这不是我第一次看到您提出的一个涉及相当复杂的主题的问题(SFINAE是一个问题),这表明一些基本原理尚不存在。我真诚地建议您阅读一本不错的C ++书-您可以在此处找到精选列表:The Definitive C++ Book Guide and List