Создание HTML-документа в CLI C ++ с макросами - PullRequest
0 голосов
/ 06 октября 2010

Из собственной внешней библиотеки я получаю заголовочный файл с объявлениями 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? Спасибо!

1 Ответ

1 голос
/ 06 октября 2010

Препроцессор Microsoft не сохраняет комментарии в макросах.Так что технически вставить новую строку невозможно. Подробнее см. . Вопросы и ответы.

Так что это делает генерацию кода невозможной с помощью препроцессора MS.

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