#include <iostream>
#include <vector>
int main()
{
class Int {
public:
Int(int _i) : i(i) {}
private:
int i;
};
std::vector<Int> VI;
}
provo a compilare il codice di cui sopra ed ha ottenuto il seguente messaggio di errore:Perché la creazione di un tipo di vettore locale fallire
foo.cc: In function 'int main()':
foo.cc:13: error: 'main()::Int' uses local type 'main()::Int'
foo.cc:13: error: trying to instantiate 'template<class _Alloc> class std::allocator'
foo.cc:13: error: template argument 2 is invalid
foo.cc:13: error: invalid type in declaration before ';' token
Potrebbe qualcuno di voi dirmi perché non posso fare cose come questa in C++? Grazie in anticipo.
Non è la stessa domanda, ma un'altra domanda sullo stesso problema: [utilizzando classi locali con algoritmi stl] (http://stackoverflow.com/questions/742607/using-local-classes-with-stl-algorithms) –