typedef std::string Name;
typedef std::size_t ID;
enum Kind
{
Kind_Integer, Kind_Structure, ...
};
struct TypeInfo
{
ID m_type_id; //型のID
Name m_name; //型の名前
Kind m_kind; //型の種類
std::size_t m_data_size; //型のデータサイズ
ID m_sub_id; // 副次情報。型の種類によって意味が異なる。
};
std::map<Name, TypeInfo> type_info;