Это прекрасно компилируется с текущим компилятором MSVC:
struct Foo
{
} const foo;
Однако, он не компилируется с текущим компилятором g ++:
error: uninitialized const 'foo' [-fpermissive]
note: 'const struct Foo' has no user-provided default constructor
Если я сам предоставлю конструктор по умолчанию, это работает:
struct Foo
{
Foo() {}
} const foo;
Это еще один случай, когда MSVC слишком разрешительный или g ++ здесь слишком строг?