разыменования типа каламбурилPass перечисление в функции принимает ссылку на Int
У меня есть перечисление
enum AgentStatus { kSTOPPED = 0, kRUNNING, kIDLE, kNAGENTSTATUS };
мне нужно передать его функции внешней библиотеки с большим количеством перегруженных вариантов. Я хочу передать его второму аргументу:
DimService::DimService(const char*, int&);
DimService::DimService(const char*, char*);
...
Если бы я сделать бросок к (INT &) моей переменной перечислимого, я получаю позорный предупреждение:
warning: dereferencing type-punned pointer will break strict-aliasing rules
Если я слепок to (int) Я получаю это
invalid conversion from ‘int’ to ‘char*’
error: initializing argument 2 of ‘DimService::DimService(const char*, char*)’
Каков правильный путь?
Использовать переменную int, а не лить. – PlasmaHH
это ссылка, не нужно использовать –
'enum AgentStatus: int {...'? Добавить 'as_lvalue'? –