Возможное дублирование:
Строки в качестве аргументов шаблона?
Почему первое объявление подходит, а второе - нет? Почему std::string
не подходит?
template <typename T, T x> struct foo { };
using namespace std;
int main()
{
foo<int, 0> f_int; // ok
foo<string, ""> f_string; // not ok
}
Я получил:
error: a non-type template parameter cannot have type 'std::basic_string<char>'
используя clang ++.