我正在尝试创建一个可用于一般调用CppUnitTestFramework的属性元数据类型的宏。由于每个测试方法的调用约定不同,因为它使用函数的名称,我需要做这样的事情:
#define GetAttributes() CATNAME(CATNAME(CATNAME(__GetMethodMetadata,_),__func__),()))
希望这个宏的使用方式如下:
...
void someFunction(){
MethodAttributeMetadata* meta = GetAttributes();
...
}
像这样处理:
...
void someFunction(){
MethodAttributeMetadata* meta = __GetMethodMetadata_someFunction();
...
}
额外信息:
编译器:Visual Studio Tools 2013(v120)
Microsoft的宏页面:https://msdn.microsoft.com/en-us/library/b0084kay.aspx
这是我能做的吗?
答案 0 :(得分:0)
我找到了答案,但事实并非如此,你不能这样做。这种方法的问题不是字符串连接,而是 func (或其任何形式)不能在函数外部使用,即使是通过间接层也是如此。