Я скомпилировал и запустил следующую программу в компиляторе C++17 (Coliru). В программе я объявил переменную extern
, но не определил ее. Однако компилятор не выдает ошибку компоновщика.
#include <iostream>
extern int i; // Only declaration
int func()
{
if constexpr (true)
return 0;
else if (i)
return i;
else
return -1;
}
int main()
{
int ret = func();
std::cout<<"Ret : "<<ret<<std::endl;
}
Почему компилятор не выдает ошибку компоновщика?