Авто Генератор Классов

Я изначально задавал этот вопрос здесь: Бывший вопрос

Похоже, что то, о чем я просил, было неправильно понято. Я постараюсь сделать это как можно более ясным и кратким:


Я работаю над парсером, который будет автоматически генерировать c++ class и если присутствуют имена файлов заголовка и cpp, то парсер запишет эти файлы соответственно. Если они опущены, то синтаксический анализатор не будет записывать файлы, в которые он автоматически сгенерирует класс на основе информации, извлеченной из файла.

Что я не знаю, как сделать: допустим, идентификатор моего класса хранится в std::string Как я могу извлечь текст в строке, чтобы использовать его в качестве имени класса. Например:

{
std::string className( "Foo" );

// parser writing class in code
class className { ....

}

Это то, что я не знаю, как это сделать, если это вообще возможно. Как указано в моем предыдущем вопросе, я предпочитаю держаться подальше от macros но не против templates при необходимости или какой-то другой механизм.


Заключение

После прочтения комментариев и предоставленного ответа ниже; мое первоначальное предположение, которое я не упомянул, на самом деле оказалось верным. Это не может быть сделано. Я с подозрением относился к этому, но хотел только подтвердить. Так что это оставляет меня от необходимости записывать в файлы для создания необходимого заголовка и / или исходных файлов во время выполнения.

0

Решение

Ты не можешь

Программы на C ++ не могут изменять себя.

Если вы хотите автоматически сгенерировать код C ++, сделайте это как шаг предварительной компиляции в процессе сборки.

У меня самого есть хороший скрипт на Python, генерирующий тонну классов C ++ (и сопровождающих их шаблонов), каждый из которых представляет один из нескольких «типов сообщений», определенных третьей стороной. Это прекрасно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]