次のプログラムをg++でコンパイル&実行してみてください。
#include<ios> int main(){printf("%s\n","Hello, world!");return 0;}
…動きましたか?printfはcstdio(またはstdio.h)をincludeしないと使えないので、ヘッダファイルiosを辿っていくとどこかでcstdioをincludeしているはずです。
では、どこで?
- ios 42行目
#include <bits/ios_base.h>
- bits/ios_base.h 41行目
#include <bits/locale_classes.h>
- bits/locale_classes.h 40行目
#include <string>
- string 52行目
#include <bits/basic_string.h>
- bits/basic_string.h 5417行目
#include <ext/string_conversions.h>
- ext/string_conversions.h 41,43行目
#include <cstdlib> #include <cstdio>
ということでした。途中でbits/stl_algobase.hやbits/stl_pair.hもincludeしているので、例えばmax/minやpairは使用できますが、sort(bits/stl_algo.h)は使用できません。