неинициализированная const

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

16
задан fredoverflow 11 November 2011 в 10:30
поделиться