¿Está declarando un campo estático de un tipo que está incompleto en el momento de la definición de clase legal en C++? Por ejemplo:Campo estático de un tipo incompleto: ¿es legal?
foo.h:
class Foo
{
public:
// ...
private:
class Bar;
static Bar something;
};
foo.cpp:
class Foo::Bar
{
// ...
};
Foo::Bar Foo::something;
// some more code
compiladores parecen aceptarlo, y no veo una razón por la cual debe ser rechazado, pero ¿qué dice la norma sobre tal situación? Realmente apreciaría que alguien brinde una cita directa del estándar, preferiblemente del "antiguo" (el de 2003).
Sí. Por eso dije: "No veo una razón por la cual deba rechazarse". Sé lo que has escrito, simplemente no estaba seguro de si el estándar no permite un código como ese por algún motivo (es C++, nunca puedes estar seguro), es por eso que quería un presupuesto directo. Además, tuve que hacer mi primera pregunta aquí;) – Fanael