Является ли объявление статического поля неполным на момент определения класса законным в C ++? Например:
Foo.h:
class Foo
{
public:
// ...
private:
class Bar;
static Bar something;
};
Foo.cpp:
class Foo::Bar
{
// ...
};
Foo::Bar Foo::something;
// some more code
Компиляторы, похоже, принимают его, и я не вижу причины, по которой он должен быть отклонен, но что стандарт говорит о такой ситуации ? Я был бы очень признателен, если бы кто-нибудь дал прямую цитату из стандарта, желательно из «старого» (2003 года).