Il tuo compilatore dovrebbe avere un'opzione per generare il file "preprocessato": da quello puoi estrarre i file inclusi: ad esempio con gcc:
codice:
$ g++ -E main.cpp | grep "# "
ottengo:
codice:
# 1 "main.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "main.cpp"
# 1 "/usr/include/c++/4.0.0/map" 1 3
# 63 "/usr/include/c++/4.0.0/map" 3
# 64 "/usr/include/c++/4.0.0/map" 3
# 1 "/usr/include/c++/4.0.0/bits/stl_tree.h" 1 3
# 66 "/usr/include/c++/4.0.0/bits/stl_tree.h" 3
# 1 "/usr/include/c++/4.0.0/bits/stl_algobase.h" 1 3
# 64 "/usr/include/c++/4.0.0/bits/stl_algobase.h" 3
# 1 "/usr/include/c++/4.0.0/i686-apple-darwin8/bits/c++config.h" 1 3
# 35 "/usr/include/c++/4.0.0/i686-apple-darwin8/bits/c++config.h" 3
# 1 "/usr/include/c++/4.0.0/i686-apple-darwin8/bits/os_defines.h" 1 3
# 36 "/usr/include/c++/4.0.0/i686-apple-darwin8/bits/c++config.h" 2 3
# 64 "/usr/include/c++/4.0.0/i686-apple-darwin8/bits/c++config.h" 3
# 65 "/usr/include/c++/4.0.0/bits/stl_algobase.h" 2 3
...