是否可以仅使用一个普通的任意关键字作为C函数参数或C ++模板参数?
例如:
func(Random);
或者
Class<Random>();
在此示例中,Random
不是预定义的变量名,类型名或宏值。
本质上,这些值将转换为字符串,但是出于我的目的,我不想将其作为字符串传递。
这是可能吗?
您可以根据需要定义一些宏
#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);
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句