Допустим, у меня есть шаблон:«символ сопз * ул» в качестве аргумента шаблона
template<char const *str>
class Template { ... };
Почему это не представляется возможным написать следующее?
Template<"literal"> T;
или
char const *s = "Literal";
Template<s> T;
И почему следующие работы?
char const s[] = "Literal";
Template<s> T;
потому что стандарт говорит так. – yngccc
@yngum, пока это правда на определенном уровне, это не очень полезно в качестве ответа. – tenfour
@tenfour См. [Передача const char * в качестве аргумента шаблона] (http://stackoverflow.com/a/3854954/1508519). Существует довольно хорошее объяснение причин, почему это не позволяет, но это сводится к спекуляции, не так ли? –