是否可以将字符串作为模板参数?如何做?喜欢
A<"Okay"> is a type.
任何字符串(std::string或c-string)都可以。
最佳答案
是的,但是您需要将其放入带有外部链接的变量中
(或者C++ 11删除了对外部链接的要求)。
基本上,给出:
template <char const* str>
class A { /* ... */ };
这个:
extern char const okay[] = "Okay";
A<okay> ...
作品。注意以为不是字符串的内容
定义唯一性,但对象本身:
extern char const okay1[] = "Okay";
extern char const okay2[] = "Okay";
鉴于此,
A<okay1>
和A<okay2>
具有不同的类型。