Дамп исходного кода C ++ с объединенным #include - PullRequest
0 голосов
/ 03 декабря 2018

Существует ли инструмент (или флаг Gcc / Clang), который создает файл C ++ с одним заголовком из файла заголовка, который #include имеет несколько других заголовков (STL и пользовательских)?Заголовок STL #include s следует оставить нетронутым.

Например, с учетом этих файлов:

// a.h
#pragma once
#include <my_lib/aa.h>
void baz() {}


// aa.h
#pragma once
void foo(int) {}


// b.h
#pragma once
void bar(float) {}


// master.h
#pragma once
#include <string>
#include <my_lib/a.h>
#include <memory>
#include <my_lib/b.h>
#include <vector>

Запуск инструмента на master.h даст такой вывод (пробелы могут отличаться):

#pragma once
#include <string>
void foo(int) {}
void baz() {}
#include <memory>
void bar(float) {}
#include <vector>

Если внутри #ifdef s есть какие-либо #include s, они также должны быть сброшены.

1 Ответ

0 голосов
/ 04 декабря 2018
...