Dans un fichier d'en-tête, j'ai avant déclaré deux membres d'un espace de noms:C++: la taille du pointeur inconnue lors de la déclaration avant (erreur C2036)
namespace Foo {
struct Odp
typedef std::vector<Odp> ODPVEC;
};
class Bar
{
public:
Foo::ODPVEC baz; // C2036
};
L'erreur généré par le compilateur est:
error C2036: 'Foo::Odp *': unknown size
Je suppose qu'il s'agit d'un problème avec la déclaration directe Odp
. Comment puis-je contourner cela?
Un point-virgule manquant dans l'espace de noms Foo est une faute de frappe? – nevets1219
Voir aussi la [liste des choses que vous pouvez et ne pouvez pas faire avec une déclaration directe] (http://stackoverflow.com/questions/553682/when-to-use-forward-declaration/553869#553869). –
@ nevets1219 oui c'était une faute de frappe –