Существует ли инструмент (или флаг 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, они также должны быть сброшены.