ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
1323743 Топик полностью
RxTx (24.06.2023 11:32, просмотров: 90) ответил AlexBi на Тут надо править код на С, что бы внутрь описания типа что-то добавить. Ищу решение без влезания внутрь, только добавлением нового. Например, если добавить FLG operator |(FLG a, FLG b){return (FLG)(((int)a)|((int)b));}; то пример выше скомпилируется без ошибок. А как написать оператор FLG(int), не влезая внутрь определения FLG я не нашел.
Вот так 
#include <stdio.h>

// Твой сишный enum enum SomeEnum { EOne = 1, ETwo = 2, }; // В крестах пишешь inline SomeEnum operator|(SomeEnum a, SomeEnum b) { return static_cast<SomeEnum>(static_cast<int>(a) | static_cast<int>(b)); }
int main() { enum SomeEnum left = EOne; enum SomeEnum right = ETwo; enum SomeEnum mix = left | right; printf("%d\r\n", mix); return 0; }

https://onlinegdb.com/E59XaLwNGD

Спасибо, князь. Вы настоящий дворянин. И программист.