parse error in template argument list (boost::program_options und vector<string>)
-
Hi!
Laut dem Tutorial zu boost::program_options[1] kann man mehrere Werte in einen vector speichern. Gut, folgendes Hab ich mal versucht:using namespace std; namespace po = boost::program_options; // ... po::options_description desc("Options"); desc.add_options() ("trainsequence", po::value<string>(), "name of the training-sequence") ("testsequence,T", po::value< vector<string> >(), "name of the test-sequences") // Zeile 97 ("help,h", "produce help message"); //...
Der GCC (4.4.1) meint aber:
svmtests2.cpp:97: error: parse error in template argument list svmtests2.cpp:97: error: expected primary-expression before ‘)’ token
Weiss wer warum?
[1] http://www.boost.org/doc/libs/1_41_0/doc/html/program_options/tutorial.html#id1404374
-
Sowohl
<vector>
als auch<string>
inkludiert?
-
selbstverstaendlich, ja
-
hmm... Der Fehler liegt anscheinend nicht in den geposteten Zeilen, sondern ist ein Symptom fuer einen Fehler ganz woanders. Hat irgendwer, was so einen Fehler an dieser Stelle triggern koennte?
-
^^
Das scheint durchaus der Fall zu sein, wenn der Code von boost selbst kommt.Kannst du den Fehler denn nicht isolieren? - Ein vollständiges Beispiel zeigen?
-
Ahhh... problem geloest.
Hatte (ueber Umwege) den Namespace boost::numeric::ublas inkludiert, und der GCC hat dann diesen "vector" statt des std::vectors genommen.
-
Hattest doch nicht etwa eine using in einem Header?
-
drakon schrieb:
Hattest doch nicht etwa eine using in einem Header?nein, im Implementationsfile. Dummerweise waren Templates involviert, und das Implementationsfile wurde im Header inkludiert, was ich nicht bedacht hatte.