У меня есть библиотека c ++, которая определяется как MACROS, как показано ниже,
/ * это определяется как заголовочный файл результата * /
#define RESULT_ENUM( prefix, name, value ) prefix ## name = (value)
#define STATE_RESULT_LIST( prefix ) \
RESULT_ENUM( prefix, SUCCESS, 0 ), \
RESULT_ENUM( prefix, PENDING, 1 ),
#define COMMON_RESULT_LIST( prefix ) \
RESULT_ENUM( prefix, SUCCESS, 0 ), \
RESULT_ENUM( prefix, PENDING, 1 ),
typedef enum
{
STATE_RESULT_LIST ( STATE_ )
COMMON_RESULT_LIST ( CHANNEL_ )
}domain_result;
Вот как это используется
int main(int argc, char** argv) {
domain_result res = CHANNEL_SUCCESS;
cout<<STATE_SUCCESS <<endl;
cout<<CHANNEL_PENDING<<endl;
return 0;
}
, поскольку все предполагают, что мы не должны использовать макросы, теперь я не хочу изменять исходные файлы c ++, нужны только изменения headerfile.
Итак, как преобразовать их в перечисления в стиле c ++ и статические константы .?