Ik probeer momenteel een tutorial te volgen over het maken van een eenvoudige 2D-tegelengine voor top-down RPG’s. Om de een of andere reden krijg ik echter de intellisense-fout
vector is not a template
Het woord ‘vector’ is rood onderstreept. Waarom werkt dit niet? Waarom vertelt het me dat het een sjabloon is, en waarom werkt het programma niet?
#ifndef _IMAGEMANAGER_H
#define _IMAGEMANAGER_H
#include <vector>
#include <SFML\Graphics.hpp>
class ImageManager
{
private:
vector<sf::Texture> textureList;
public:
ImageManager();
~ImageManager();
void AddTexture(sf::Texture& texture);
sf::Texture& GetTexture(int index);
};
#endif
Fouten die ik krijg (ongetwijfeld komen sommige van deze voort uit de fout van dit deel hierboven):
Fout 1 fout C2143: syntaxisfout: ontbrekende ‘;’ voor ‘<‘ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 2 fout C4430: ontbrekende typespecificatie – int verondersteld. Opmerking: C++ biedt geen ondersteuning voor standaard-int c:\users\vipar\dropbox\computer
wetenschap\programmering\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 3 fout C2238: onverwachte token(s) voorafgaand aan ‘;’ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 4 fout C2143: syntaxisfout: ontbrekende ‘;’ voor ‘<‘ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 5 fout C4430: ontbrekende typespecificatie – int verondersteld. Opmerking: C++ ondersteunt standaard-int c:\users\vipar\dropbox\computer
. niet
wetenschap\programmering\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 6 fout C2238: onverwachte token(s) voorafgaand aan ‘;’ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 7 fout C2065: ‘textureList’: niet-aangegeven id c:\users\vipar\dropbox\computer science\programming\visual
studio 2012\projects\sfml-app\sfml-app\imagemanager.cpp 22 1 sfml-appFout 8 fout C2143: syntaxisfout: ontbrekende ‘;’ voor ‘<‘ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 9 fout C4430: ontbrekende typespecificatie – int verondersteld. Opmerking: C++ biedt geen ondersteuning voor standaard-int c:\users\vipar\dropbox\computer
wetenschap\programmering\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-appFout 10 fout C2238: onverwachte token(s) voorafgaand aan ‘;’ c:\users\vipar\dropbox\computer science\programming\visual studio
2012\projects\sfml-app\sfml-app\imagemanager.h 10 1 sfml-app11 IntelliSense: vector is geen sjabloon c:\Users\Vipar\Dropbox\Computer Science\Programming\Visual
Studio 2012\Projecten\sfml-app\sfml-app\ImageManager.h 10 2 sfml-app
Antwoord 1, autoriteit 100%
vector
komt uit de std
naamruimte, dus je moet std::
gebruiken om het volgende op te geven:
std::vector<sf::Texture> textureList;
Of je kunt een using
statement gebruiken:
using std::vector;
vector<sf::Texture> textureList;
Antwoord 2, autoriteit 14%
Aangezien ik geen using
-instructies in je codevoorbeeld zie, ben ik er vrij zeker van dat je std::
moet toevoegen aan je vector
declaratie, zoals zo:
std::vector<sf::Texture> textureList;