Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » vector: Was ist falsch an dieser Syntax?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.04.2006, 18:08 Uhr
pippo



Mir ist grad langweilig und ich will ein Programm schreiben, um Sudokus zu berechnen. Kann mir jemand sagen, was an folgender Syntax falsch ist?


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

int main()
{
    vector< vector< vector<int > > >  Sudoku(9, vector<vector<int>>(9, vector <int>(10)));
    return 0;
}



Bekomm nämlich immer folgende Fehlermeldung:
... : error C2947: '>' wird erwartet, um template-argument-list abzubrechen. '>>' wurde gefunden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.04.2006, 18:21 Uhr
(un)wissender
Niveauwart


Leerzeichen zwischen >> vergessen
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.04.2006, 18:53 Uhr
~Stefan S.
Gast


Soweit ich weiß haben die älteren Compiler Probleme mit dem parsing. Mittels Leerzeichen zwischen << wie schon erwähnt wurde dürfte es aber funktionieren. MSVC 8.0 hat dieses Problem nicht mehr.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.04.2006, 19:19 Uhr
(un)wissender
Niveauwart



Zitat:

MSVC 8.0 hat dieses Problem nicht mehr.



Wenn das wahr ist, dann wäre das nicht gut, weil es nicht portablen Code unterstützt. >> und templates wird wohl erst in c++0x legal sein.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.04.2006, 19:27 Uhr
~Stefan S.
Gast



Zitat von (un)wissender:
Wenn das wahr ist, dann wäre das nicht gut, weil es nicht portablen Code unterstützt. >> und templates wird wohl erst in c++0x legal sein.


Ja, das ist in der Tat wahr. Was mich interessieren würde ist ob es im aktuellen C++ Standard festgelegt ist das eine Space vorhanden sein muss? Weißt du da genaueres? Denn portabel ist immer so eine Sache. Die Compilerhersteller haben in Sachen Templates schon immer ihre eigene Interpretation des Standards an den Tag gelegt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.04.2006, 19:32 Uhr
~Stefan S.
Gast


Das Hauptproblem bestand ja hauptsächlich im Parsing, da die Syntax >> leicht als Shift interpretiert werden konnte und nicht als Ende der Klasse...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.05.2006, 11:42 Uhr
0xdeadbeef
Gott
(Operator)


>> geht an dieser Stelle in templates nicht, aus einem ziemlich offensichtlichen Grund:

C++:
template <int i> class meine_template_die_von_einer_zahl_abhaengt { };
// ...

meine_template_die_von_einer_zahl_abhaengt<6 >> 2> foo;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.05.2006, 11:45 Uhr
(un)wissender
Niveauwart


Das geht schon und wird auch in c++0x gehen. Nur jetzt hat der ANSI-Standard da halt einen Bug.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: