Мне нужно что-то, что будет работать со следующим:
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, но мне нужен тип, который фактически является членом, в отличие от вложенного типа.
Редактировать: Упс, похоже, что мне нужна была только одна строка. Извините, спасибо за помощь!
Я думаю, что это, вероятно, самое близкое, что вы можете сделать в данный момент, хотя имя типа, скорее всего, будет искалечено (не найдено реализации, которая еще не создана):
struct thing {
int i;
};
thing t;
std::cout << "the size of " << typeid(t.i).name()
<< " is " << sizeof(t.i) << "\n";