Intel Compiler und Templateklassen
-
Hallo allerseits!
Ich habe ein Problem mit dem Intelcompiler und zwar:
Bei folgendem Codestück beschwert sich der Compiler darüber, daß PairIterator (an der fett dargestellten Stelle) ein Klassenname sein muß und weigert sich das zu kompilieren. Allerdings ist das doch ein Klassenname (da in Template definiert). Mit dem gcc läuft das auch problemlos.
Kann ich den Compiler irgendwie dazu bewegen, den Code doch zu kompilieren oder gibt es sinnvolle Workarounds?[cpp]
template <class PairIterator>
class project1st_iterator
{
public:
typedef typename PairIterator::value_type::first_type value_type;
};
[/cpp]Mit besten Grüßen!
Wilfried
-
Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Linux/Unix in das Forum Andere Compiler verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Bei mir schluckt er es.
-
Benutzt Du irgendwelche (mehr oder minder) besonderen Compiler- oder Kompatibiltätsflags? Kann es daran liegen, daß ich die nicht supporte Version für den Heimgebrauch habe?
-
Nein, ich benutze icc -c und habe auch die Gratisversion (8.0.55).
-
Ah, instantiieren muss ich es auch. Dann beschwert er sich bei mir ebenfalls.
-
Und existiert eine Idee der Abhilfe?
-
Nein, nicht genau, aber es muss irgendwas an der STL komisch sein. Ich hab mir nämlich eigene Minimalklassen "iterator" und "pair" definiert, die die verwendeten Typen als typedef enthalten, und damit compiliert es.