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 が含まれているのではないかと思いますが、ネストされた型ではなく、型が実際にメンバーである必要があります。

編集:おっと、必要な機能は結局単なる文字列だったようです。すみません、助けてくれてありがとう!

4

1 に答える 1

1

これは、現時点で実行できる最も近いものであると思いますが、型名が破損する可能性があります (まだ実装が見つかりません)。

struct thing {
  int i;
};

thing t;
std::cout << "the size of " << typeid(t.i).name() 
          << " is " << sizeof(t.i) << "\n";
于 2013-10-08T21:14:58.037 に答える