Преобразование строк в enum в C ++? - PullRequest
1 голос
/ 03 февраля 2009

Строки для перечисления в C # , как вы обычно конвертируете строки в enum в C ++. Любая вспомогательная функция, которую вы используете, является хорошей идеей для этого.

Ответы [ 3 ]

2 голосов
/ 03 февраля 2009

Я недавно рассмотрел этот подход - доступен через Код проекта

0 голосов
/ 15 апреля 2013
#include <EnumString.h>

от http://codeproject.com/Articles/42035/Enum-to-String-and-Vice-Versa-in-C и после

enum FORM {
    F_NONE = 0,
    F_BOX,
    F_CUBE,
    F_SPHERE,
};

вставить

Begin_Enum_String( FORM )
{
    Enum_String( F_NONE );
    Enum_String( F_BOX );
    Enum_String( F_CUBE );
    Enum_String( F_SPHERE );
}
End_Enum_String;

Работает нормально, если значения в enum не повторяются.

Пример в коде

enum FORM f = ...
const std::string& str = EnumString< FORM >::From( f );

и наоборот

assert( EnumString< FORM >::To( f, str ) );
0 голосов
/ 03 февраля 2009

Возможно, вам потребуется использовать структуру данных std :: map или hash_map.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...