Я спрашиваю себя, почему работает следующий код и что спецификатор extern
делает при создании baz_instance
:
struct baz {
int value;
};
extern const baz baz_instance = {3};
template<baz const& b>
int foo(){
return b.value;
}
int main(){
foo<baz_instance>();
return 1;
}
Почему этот код компилируется в первую очередь и почему он больше не компилируется, если спецификатор extern
отсутствует? Что делает спецификатор extern
в этом примере?