Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

szablony - error: expected `;' before "b"

Ostatnio zmodyfikowano 2008-06-30 23:25
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
szablony - error: expected `;' before "b"
» 2008-06-30 23:25:17
[tutorial]mib podesłał do mnie pytanie czemu poniższy program się nie kompiluje:
C/C++
#include <iostream>
#include <vector>
using namespace std;

class pom { };

template < class param >
class t {
    vector < param > a;
    vector < param >::iterator b;
};

int main() {
    t < pom > bb;
    return 0;
}

10: error: expected `;' before "b"

Otóż... gdy korzystamy z szablonów kompilator wyrzuca błędy w miejscach, które są teoretycznie napisane poprawnie składniowo, musimy czasami mu pomóc. W większości przypadków rozwiązaniem będzie dopisanie typename na początku wiersza w którym występuje błąd. Tak więc rozwiązany problem wygląda tak:

C/C++
#include <iostream>
#include <vector>
using namespace std;

class pom { };

template < class param >
class t {
    vector < param > a;
    typename vector < param >::iterator b;
};

int main() {
    t < pom > bb;
    return 0;
}

[/tutorial]
P-910
« 1 »
  Strona 1 z 1