Аргумент шаблона может быть константным выражением (§C.5), адресом объекта или функции с внешней связью (§9.2) или неперегруженным указателем на член (§15.5) , Указатель, используемый в качестве аргумента шаблона, должен иметь вид
&ooff
, гдеooff
- это имя объекта или функции или формыff
, гдеff
- это имя функции. Указатель на член должен иметь вид&XX::ooff
, гдеooff
- это имя участника. В частности, строковый литерал неприемлем в качестве аргумента шаблона.действительный аргумент шаблона
Это из стройстовой книги. Какова логика того, что разрешено, а что нет? Почему строковый литерал неприемлем?
Я понимаю, что компилятор должен иметь возможность выводить тип аргумента, чтобы он мог генерировать код внутри этого типа. Спасибо за помощь
Возможный дубликат [Строковые литералы не допускаются как параметры шаблона без шаблонов] (http://stackoverflow.com/questions/5547852/string-literals-not-allowed-as-non-type-template-parameters) –
парень в этом посте объяснил это так хорошо, как сама книга. Это именно то, что я искал. – PnotNP