- Классика жанра же: когда делаешь макрос, его всегда, кроме случаев
когда невозможно, нужно делать выражением (а не оператором --
потому, что сам макрос могут вставить в контекст выражения, а не
оператора), и обязательно брать в скобки тело макроса! И аргументы
макроса тоже нужно брать в скобки, потому, что в общем случае
неизвестно с каким аргументами вызывали макрос, может там
MACRO(a+b, a*b), и неизвестно как оно состыкуется с операторами в
макросе. fk0(2672 знаков, 11.09.2020 03:09, ссылка, ссылка)
- Можно просто енумы генерировать через макрос, который сгенерирует и энум, и inline-функцию принимающую данный enum и возвращающую строку. Проблема потом, как эту функцию вызвать. Например ENUMNAME_tostring(value). Ведь вместо ENUMNAME можно fk0(2872 знаков, 11.12.2019 14:04, ссылка)