Это прекрасно компилируется с текущим компилятором 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 ++ здесь слишком строг?