Jak uruchomić preprocesor tylko w lokalnych nagłówkach?

Chcę, aby preprocesor odczytał zawartość nagłówków lokalnych, ale zignoruj ​​dołączone nagłówki systemowe. Innymi słowy, jak sprawić, aby preprocesor pomijał dyrektywy preprocesowania w postaci:

#include <h-char-sequence> new-line

ale nadal przetwarzaj dyrektywy w formie:

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

Jako przykład kodu obserwuj następujący plik:

#include <iostream>     //system
#include "class_a.hpp"  //local
#include <string>       //system
#include "class_b.hpp"  //local

int main() {}

jak mogę uzyskać wyjście preprocesora:

#include <iostream>
class A{};
#include <string>
class B{};

int main() {}

Lokalne pliki dołączane mogą zawierać inne lokalne pliki dołączania, a preprocesor wprowadziłby je rekurencyjnie; tak jak zwykle. Nadal drukowałby wszystkie nagłówki plików systemowych, ale nie wprowadziłby ich zawartości.

na gcc moje wywołanie wygląda tak do tej pory:g++ -E -P main.cpp, gdzie-E zatrzymuje się po wstępnym przetworzeniu i-P wyklucza generowanie znaczników linii.
Nie mogę znaleźć flagi, która wyklucza przetwarzanie nagłówków systemowych.

questionAnswers(4)

yourAnswerToTheQuestion