Я работаю над проектом C ++, в котором есть много классов, которые имеют классы, методы и включают все в один файл. Это большая проблема, потому что часто реализации метода требуют операторов #include, и любой файл, который хочет использовать класс, наследует эти #include транзитивно. Я просто подумал, что было бы неплохо иметь инструмент, который выполнял бы следующую операцию с файлом заголовка C ++:
- Разберите файл заголовка C ++ на две части: файл заголовка, который объявляет класс, его данные и методы этого класса, и отдельный файл, реализующий методы.
- Удаляет ненужные включения из файла заголовка.
- Добавляет необходимые включения в файл реализации.
Я понимаю, что синтаксический анализ C ++ очень сложен, но даже то, что работало неидеально, было бы улучшением по сравнению с повторяющимся редактированием текста, которым я сейчас занимаюсь. Есть ли что-нибудь подобное? Или я застрял перед выбором: откатать собственное решение или пробить его с помощью текстового редактора?