我需要一个C ++类型,它实际上是一个成员,而不是嵌套类型

时间:2013-10-08 21:08:42

标签: c++ types typedef member

我需要能够使用以下内容的东西:

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,但我需要类型实际上是一个成员,而不是嵌套类型。

编辑:哎呀,看起来我需要的功能 毕竟只是一个字符串。对不起,谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我认为这可能是你目前最接近的,虽然类型名称可能会被破坏(找不到尚未实现的实现):

struct thing {
  int i;
};

thing t;
std::cout << "the size of " << typeid(t.i).name() 
          << " is " << sizeof(t.i) << "\n";