是否可以只使用普通的任意关键字作为C函数参数或C ++模板参数?
例如:
func(Random);
或
Class<Random>();
在此示例中,Random
不是预定义的变量名,类型名称或宏值。
基本上,这些值将转换为字符串,但出于我的目的,我不想将其作为字符串传递。
这一切都可能吗?
答案 0 :(得分:2)
如果需要,您可以定义一些宏
#define KW(x) #x
然后你可以自由使用
void func(const char *p);
func(KW(oi));
或
void func(std::string s);
func(KW(ciao));
...另一种选择是将func
定义为宏,例如:
#define func(a, x, b) realFunc(a, #x, b)
然后
void realFunc(int a, std::string s, double b);
func(3, arigato, 4.1);
...