C++ 'da sınıf tanımı anında eksik olan bir tür statik alan bildiriyor mu?Tamamlanmamış türde statik alan - yasal mı?
Foo.h:
class Foo
{
public:
// ...
private:
class Bar;
static Bar something;
};
foo.cpp: Örneğin
class Foo::Bar
{
// ...
};
Foo::Bar Foo::something;
// some more code
Derleyiciler onu kabul gibi görünüyor ve olması gerektiği kendisi için bir neden görmüyorum reddedildi, ama standart böyle bir durum hakkında ne diyor? Standarttan, tercihen "eski" olandan (2003'ten itibaren) doğrudan alıntı yapan birini takdir ediyorum.
Yup. Bu yüzden "reddedilmesi gereken bir neden görmüyorum" dedim. Yazdığınız şeyleri biliyorum, standardın bir nedenden ötürü böyle bir kodu engellemediğinden emin değildim (C++, asla emin olamazsınız), bu yüzden direkt bir teklif istiyorum. Ayrıca, ilk sorumu burada sormam gerekiyordu;) – Fanael