Шаблоны в c ++, typename и class - PullRequest
       0

Шаблоны в c ++, typename и class

6 голосов
/ 25 апреля 2011

В чем разница между написанием шаблона на c ++ в обоих случаях:

template<typename T> & template<class T>

а когда мы предпочитаем их друг другу? Если оба одинаковы, то зачем нам оба, если одного достаточно?

Ответы [ 2 ]

9 голосов
/ 25 апреля 2011

Нет разницы вообще. Я предпочитаю первый (в основном), но это мой личный вкус. Язык не имеет никакого значения между ними.

Для параметров шаблона ключевые слова typename и class эквивалентны. § 14.1.2 говорит:

Нет семантической разницы между классом и typename в Шаблон-параметр.


Если оба одинаковы, то зачем нам их оба, если одного достаточно?

Стэн Липпман объясняет это в своей статье:

Почему C ++ поддерживает как класс, так и имя типа для параметров типа?

3 голосов
/ 25 апреля 2011

Эти ключевые слова существуют по историческим причинам.Там нет никакой разницы между ними.Читать это: http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspx

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