Что означает «typename» в примере распределения asio - PullRequest
0 голосов
/ 07 сентября 2018

в строке 109 показано пример распределения asio

template <typename T>
class handler_allocator
{

...

private:
  template <typename> friend class handler_allocator; // line 109

...

}

Интересно, что означает шаблон ? Это шаблон в обычном порядке? Кстати, пример может сработать.

1 Ответ

0 голосов
/ 07 сентября 2018

handler_allocator - это шаблон класса , т. Е. Только при конкретном создании он приведет к фактическому классу. Следовательно, эти экземпляры являются множественными, так что вы получите один класс для каждого T. Если вы хотите, чтобы эти разные классы были friend друг от друга, тогда эта строка была бы подходящей.

Интересно, что означает шаблон ? Это шаблон < имя T> ...?

Не совсем. Если вы добавите T, то это приведет к неверному коду, поскольку T будет shadow первым T. Вместо этого вы можете добавить любой другой именованный идентификатор (скажем, S), но в любом случае он работает без него, поскольку в этом фрагменте его нет смысла.

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