是否可以将字符串作为模板参数?如何做?喜欢

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>具有不同的类型。

08-16 08:31