Что означает звездочка «*» после типа шаблона? - PullRequest
0 голосов
/ 16 января 2019

Я пришел код шаблона, который использует * после типа шаблона:

  ...
  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 голосов
/ 16 января 2019

Означает то же самое, что и для любого типа, - это указатель на type, определенный внутри std::enable_if, специализированный для истинного условия, который по умолчанию void - выдающий все знакомые void*.

На совершенно другом (и, возможно, опрометчивом) замечании, это не первый раз, когда я вижу от вас вопрос, затрагивающий довольно сложную тему (SFINAE - одна из них), которая демонстрирует, что некоторые базовые основы еще не достигнуты. Я искренне рекомендую прочитать хорошую книгу по C ++ - список кураторов вы можете найти здесь: Подробное руководство и список книг по C ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...