Мне нужен тип в C ++, который буквально является членом, в отличие от вложенного типа

0

Мне нужно что-то, что будет работать со следующим:

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, но мне нужен тип, который фактически является членом, в отличие от вложенного типа.

Редактировать: Упс, похоже, что мне нужна была только одна строка. Извините, спасибо за помощь!

Теги:
types
typedef
member

1 ответ

1
Лучший ответ

Я думаю, что это, вероятно, самое близкое, что вы можете сделать в данный момент, хотя имя типа, скорее всего, будет искалечено (не найдено реализации, которая еще не создана):

struct thing {
  int i;
};

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню