Dans mon fichier d'en-tête, je veux éviter d'utiliser #include mais ma classe aura un vecteur ou un pointeur vers un vecteur. Je me contente d'un simple pointeur, mais je n'arrive pas à comprendre comment le déclarer. Devrai-je le déclarer vide * et toujours le jeter? Ce serait boiteux.Forward déclare un pointeur vers un conteneur STL?
// What do I type here to forward declare vector?
class Counters
{
Counters();
void inc(const char* s);
void print();
void clear();
private:
std::vector<int>* Counts;
int total;
};
Veuillez noter que je ne veux qu'un POINTER TO un conteneur à stocker dans ma classe, PAS un conteneur. La taille des pointeurs est connue sans avoir besoin de se référer à la déclaration du conteneur, donc ne répondez pas que cela ne peut pas être fait parce que le compilateur a besoin de connaître la déclaration du conteneur.
* « Dans mon fichier d'en-tête que je veux éviter d'utiliser #include » * C'est le problème là, il suffit d'inclure ce dont vous avez besoin. –
Pourquoi voulez-vous éviter "#include"? Il ne devrait pas y avoir de mal à le faire. –
Les déclarations anticipées existent pour une raison, les gars. Dans le cas présent, cette déclaration sera utilisée par le compilateur CUDA ainsi que par le compilateur C++ principal. pour éviter d'inclure trop de merde dans le code que CUDA va analyser. Croyez-moi. –