Я скомпилировал и запустил следующую программу в компиляторе С++ 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;
}
Почему компилятор не дает ошибку компоновщика?