vector<vector<char> > testi; // onnistuu typedef vector<vector<char> > KUVA; // ei onnistu
Miksi ei toimi?
E: Tai ehkä paremmin voisi kysyä: Miten tämä saadaan toimimaan?
Kääntäjä valittaa:
expected init-declarator before '<' token
expected `,' or `;' before '<' token
Kyllä minulla toimii, ettei nyt puuttuisi puolipiste jostain muualta ennen tuota kohtaa koodissa.
Tuo ei toimi otsikkotiedostossani, mutta jos laitan sen itse ohjelman kanssa samaan tiedostoon, se toimii.
// 2dcmd.h #include <iostream> #include <fstream> #include <vector> ... class NAYTTO { ... }; typedef vector<vector<char> > KUVA;
// hippisieni_cmd.cpp #include <oma/2dcmd.h> #include <oma/perus.h> typedef vector<vector<char> > KUVA; int main() { ... }
Samaa valittaa, jos laitan tuon typedef vaikka heti #include <vector>
jälkeen
Muistahan käyttää std-nimiavaruutta (std::vector tai sopiva using-lause).
Joo nyt toimiikin, kiitoksia. Ja minulla tietenkin oli tuolla perus.h:ssa using namespace std;
...
Aihe on jo aika vanha, joten et voi enää vastata siihen.