Специализация шаблона с float как не-тип

Раздел 4.3 Шаблонов C ++ заявляет, что не может использовать литералы с плавающей точкой (и простые постоянные выражения с плавающей запятой) поскольку аргументы шаблона имеют исторические причин. »

Аналогично,

$ 14.1 / 7 утверждает:« Не типовой параметр-шаблон не должен быть объявлено с плавающей точкой, класс или тип void. [Пример:

template class X; // error
template class Y; // OK
template class Z; // OK"
  1. Какова историческая причина, о которой говорится в книге в приведенной выше цитате?

  2. Глядя на то, почему Y и Z действительны, но не X, вся проблема связана с наличием параметров шаблона, не являющегося типом плавающего типа нужно делать что-нибудь с указателями / ссылками?

  3. Почему параметры, не являющиеся типом шаблона, не могут быть классового типа?

11
задан Paweł Szczur 17 June 2013 в 15:14
поделиться