Почему следующий код работает, хотя я не включаю библиотеку <climits>
?
#include <iostream>
using namespace std;
int main()
{
int min = INT_MIN;
int max = INT_MAX;
cout << min << endl;
cout << max << endl;
return 0;
}
Выход:
git:(master): g++ main.cpp
git:(master): ./a.out
-2147483648
2147483647
g++ -v [INS] 5:21AM
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
какой компилятор? С какими флагами? Здесь не компилируется: godbolt.org/z/E3qTsb.
Реализации заголовков стандартных библиотек могут, в свою очередь, включать в себя другие заголовки стандартных библиотек по мере необходимости для достижения своих целей.
Однако это внутренняя деталь, которая может (и будет!) отличаться в разных цепочках инструментов, и на нее не следует полагаться.
Вы заглянули в шапку
<iostream>
? Может быть, это включает в себя другие?