可能重复:
字符串作为模板参数?
为什么第一个声明可以,而第二个声明不行?为什么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>'
使用铿锵++。