a の値に基づいてプリプロセッサ定義を作成したいtypedef
。
アイデアは、適切な定義をチェックindex_type_t
して生成することです。INDEX_TYPE_GL
以下は意図したとおりに動作しません。
typedef uint32_t index_type_t;
#ifdef INDEX_TYPE_GL
#undef INDEX_TYPE_GL
#endif
#if (index_type_t == uint8_t)
#define INDEX_TYPE_GL GL_UNSIGNED_BYTE
#elif (index_type_t == uint32_t)
#define INDEX_TYPE_GL GL_UNSIGNED_INT
#elif (index_type_t == uint16_t)
#deine INDEX_TYPE_GL GL_UNSIGNED_SHORT
#endif
uint8_t
、uint16_t
、uint32_t
は別typdefs
の場所で分離されており、GL_UNSIGNED_BYTE
etc は型ではなく整数値であることに注意してください。