Из собственной внешней библиотеки я получаю заголовочный файл с объявлениями enum:
#define LIST(declare) \
declare(A, "aaa") \
declare(B, "bbb") \
declare(C, "ccc") \
Используя его, я создаю перечисление .NET:
#define EXTRACT(p1,p2) p1,
enum class Val { LIST(EXTRACT) };
Который прекрасно работает. Результат Val.A
, ... значений. Теперь я хотел бы автоматически сгенерировать /// aaa
html документ, используя тот же метод, чтобы вывод макроса выглядел так:
enum class Val {
/// aaa
A,
/// bbb
B,
/// ccc
C,
}
Создание макроса, подобного
#define EXTRACT(p1,p2) /// p2 \
p1,
не работает, потому что компилятор C ++ обрабатывает ///
как комментарий, который переходит на следующую строку из-за \
в конце строки.
Можно ли вообще этого добиться без использования инструментов codegen? Спасибо!