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

Kon*_*ele 0 c++ templates

我来了一个模板代码,用于*模板类型之后:

  ...
  template <typename _Up, typename _Ep, typename = void>
  struct _Ptr
  {
      using type = _Up*; 
  };
  ...
Run Code Online (Sandbox Code Playgroud)

我看到的另一种用法

   ...
   template <typename T, typename \
   std::enable_if<std::is_integral<T>::value,T>::type* = nullptr>
   ...
Run Code Online (Sandbox Code Playgroud)

这个结构描述在哪里?

Ser*_*eyA 6

对于任何类型来说意味着同样的事情 - 它是一个指向type定义的内部std::enable_if专用于真实条件的指针,默认情况下void- 产生所有熟悉的void*.

在一个完全不同(可能是不明智的)的说明中,这不是我第一次看到你提出的一个涉及相当复杂的主题的问题(SFINAE就是一个),这表明一些基本的基本原理还没有.我真诚地推荐阅读一本好的C++书籍 - 你可以在这里找到精选的列表:The Definitive C++ Book Guide and List