__traits(hasMember)是否适用于类?
根据文档,__ traits(hasMember,...)应该适用于任何具有成员的类型,但是我无法获得使用它来编译类的代码。请观察以下代码段:
struct A {
int foo;
}
static assert(__traits(hasMember, A, "foo"));
这编译(虽然它不会链接,因为没有主要)。但是,如果我将“struct A”更改为“A类”,则静态断言将触发,代码将无法编译。我在bug追踪器中找不到任何东西,看起来这是视力表上的一个大E。难道我做错了什么?
- 编辑:
以getMember为例,如果foo是静态的,则hasMember似乎只适用于该类。或者,我可以实例化A并使用非静态foo测试实例。问题是,我需要在编译时测试类的非静态成员的存在。
没有找到相关结果
已邀请:
1 个回复
钾涎净介
在编译时测试它。