Comeau compiliert das nicht
-
Warum bring der Comeau-Compiler (http://www.comeaucomputing.com) bei folgendem Code
template <typename Tkey, typename Tval, typename Tmap=typename std::map<Tkey, std::list<Tval>::iterator > > class foo { };
folgende Fehler
Comeau C/C++ 4.3.3 (Aug 6 2003 15:13:37) for ONLINE_EVALUATION_BETA1
Copyright 1988-2003 Comeau Computing. All rights reserved.
MODE:strict errors C++
"ComeauTest.c", line 6: error: nontype "std::list<_Tp, _Alloc>::iterator [with
_Tp=Tval, _Alloc=std::allocator<_T2>]" is not a type name
typename Tmap=typename std::map<Tkey, std::list<Tval>::iterator > >
^
"ComeauTest.c", line 6: error: nontype "std::list<_Tp, _Alloc>::iterator [with
_Tp=Tval, _Alloc=std::allocator<_T2>]" is not a type name
typename Tmap=typename std::map<Tkey, std::list<Tval>::iterator > >
^
"ComeauTest.c", line 6: error: nontype "std::list<_Tp, _Alloc>::iterator [with
_Tp=Tval, _Alloc=std::allocator<_T2>]" is not a type name
typename Tmap=typename std::map<Tkey, std::list<Tval>::iterator > >
^
3 errors detected in the compilation of "ComeauTest.c".Mein C-Builder hat kein Problem damit (zumindest kompiliert er es)
-
Das typename vor std::map gehört weg und stattdessen eins vor std::list.
[edit: böse Vermutungen getötet]
-
Hallo,
ein typename darf weder einen Typ in der Basisklasenliste noch in der Intialisierungsliste qualifizieren.
Das:template <class T> class Foo : typename Bar<T>::type {};
ist also genauso verboten wie:
class Foo : Bar<T>::type { public: Foo() : typename Bar<T>::type(0) };
Verwendet ein solcher Typ hingegen aber selbst wieder einen abhängigen Typen, dann muss dieser natürlich qualifiziert werden:
template <class T> class Foo : Bar<typename FooBar<T>::result>::type {};
class Foo : Bar<T>::type { public: Foo() : Bar<T>::type(typename Bar<T>::type(0)) };
Wenn man genauer drüber nachdenkt macht das auch sinn, da ja sowohl in Basisklassenlisten, als auch in Initialisierungslisten ausschließlich Typen vorkommen können. Es besteht also einfach keine Mehrdeutigkeit die man durch qualifiziern auflösen müsste.
-
Danke!
-
Hallo
Wo kann ich diesen Compiler Herunterladen.
Ich finde den Link zum Download nicht.Kannst du mir diesen Link geben ?
Danke
Gruß
Hans
-
Suchst du nach ner passenden warez-site?
-
Nö
Ich suche nach einen C++ Compiler mit dem ich C++ dateien Compilieren kann.
Grúß
Hans
-
Du sagtest "diesen" nicht "einen".