Как мне запустить препроцессор только на локальных заголовках?

Я хочу, чтобы препроцессор считывал включения локальных заголовков, но игнорировал включения системных заголовков. Другими словами, как заставить препроцессор пропустить директивы предварительной обработки вида:

#include  new-line

но все же обрабатываем директивы вида:

#include "q-char-sequence" new-line

В качестве примера кода обратите внимание на следующий файл:

#include      //system
#include "class_a.hpp"  //local
#include        //system
#include "class_b.hpp"  //local

int main() {}

Как я могу получить выходные данные препроцессора, чтобы быть:

#include 
class A{};
#include 
class B{};

int main() {}

Локальные включаемые файлы могут включать другие локальные включаемые файлы, и препроцессор рекурсивно вводит их все; так же, как обычно. Он по-прежнему будет печатать все заголовки системных файлов, но не будет вводить их содержимое.

на gcc мой вызов пока выглядит так:g++ -E -P main.cpp, где-E останавливается после предварительной обработки и-P исключает генерацию линейных маркеров.

Я могу'Кажется, не найден флаг, исключающий обработку системных заголовков.

Ответы на вопрос(4)

Ваш ответ на вопрос