我需要能够使用以下内容的东西:
struct thing *s;
printf("the size of %s is %d", s->type, (int) sizeof(s->type));
我以为我终于找到了typedef
的解决方案,但没有:
struct thing {
typedef int type;
}
需要thing::type
形式的语法。我怀疑解决方案仍然涉及typedef,但我需要类型实际上是一个成员,而不是嵌套类型。
编辑:哎呀,看起来我需要的功能 毕竟只是一个字符串。对不起,谢谢你的帮助!
答案 0 :(得分:1)
我认为这可能是你目前最接近的,虽然类型名称可能会被破坏(找不到尚未实现的实现):
struct thing {
int i;
};
thing t;
std::cout << "the size of " << typeid(t.i).name()
<< " is " << sizeof(t.i) << "\n";