PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Komische Warnung...


Matrix316
2007-01-23, 19:40:30
Kann jemand damit was anfangen: warning C4663: Aenderung der Sprache C++: Verwenden Sie folgende Syntax, um die Template-Vorlage 'vector' explizit zu spezialisieren:
Vorlage<> class vector<bool,class std::allocator<unsigned int> > ...

Gast
2007-01-24, 11:41:55
hast du vielleicht versucht, die vector-Klasse aus der STL ohne Typangabe zu verwenden?
Hilfreich wäre auch, wenn du verraten würdest, welchen Compiler/IDE du benutzt und uns den Codeschnipsel zeigen könntest, bei dem die Warnung auftaucht.

Matrix316
2007-01-24, 12:03:55
Ok:

In einem DirectShow Filter includiere ich

#include <vector>

dann deklariere (oder definiere) ich einen Vector:

std::vector<int> test;

es kommen folgende Warnungen:


C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\vector(249) : warning C4663: Aenderung der Sprache C++: Verwenden Sie folgende Syntax, um die Template-Vorlage 'vector' explizit zu spezialisieren:
Vorlage<> class vector<bool,class std::allocator<unsigned int> > ...
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\vector(156) : warning C4018: '<' : Konflikt zwischen signed und unsigned
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\vector(156) : Bei der Kompilierung der Member-Funktion 'void __thiscall std::vector<unsigned int,class std::allocator<unsigned int> >::insert(unsigned int *,unsigned int,const unsigned int
&)' der Klassenvorlage
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\vector(167) : warning C4018: '<' : Konflikt zwischen signed und unsigned
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\vector(156) : Bei der Kompilierung der Member-Funktion 'void __thiscall std::vector<unsigned int,class std::allocator<unsigned int> >::insert(unsigned int *,unsigned int,const unsigned int
&)' der Klassenvorlage
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\xstring(525) : warning C4530: C++-Behandlungsroutine verwendet, aber Entladesemantik ist nicht aktiviert. Geben Sie -GX an.
C:\Programme\Microsoft Visual Studio 06\VC98\INCLUDE\xstring(521) : Bei der Kompilierung der Member-Funktion 'void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Copy(unsigned int)' der Klassen
vorlage


Das Problem ist, alle normalen C Header funktionieren (also mit h am Ende) aber die c++ Sachen gehen net richtig.

del_4901
2007-01-24, 15:26:44
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/c4663.asp

Gast
2007-01-24, 17:48:38
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/c4663.aspdas betrifft die Deklaration der Template-Klasse, die Matrix' geposteten Warnmeldung zufolge in der von M$ selbst gelieferten vector-Headerdatei steht...

Fruli-Tier
2007-01-28, 12:22:32
Hast Du in den Projektoptionen eingestellt, den Code als C und nicht als C++ Code zu kompilieren?

Matrix316
2007-01-28, 14:25:04
Wo stellt man das denn ein unter Visual Studio 6?

Coda
2007-01-28, 14:44:43
Visual Studio 6 an sich könnte schon der Fehler sein :rolleyes:

Matrix316
2007-01-28, 14:52:12
Ich glaube Microsoft ist der Fehler. ;) Mit VS2005 gibts noch sehr viel mehr Probleme bei den alten DirectShow Samples.

ShadowXX
2007-01-29, 12:59:14
Ich glaube Microsoft ist der Fehler. ;) Mit VS2005 gibts noch sehr viel mehr Probleme bei den alten DirectShow Samples.
Die MSDN-Samples kannst du meistens vergessen. Entweder fehlt die Hälfte, es sind Bugs drinne, benötigte Libs/Header existieren nicht mehr oder nur noch in anderen Versionen oder die Schnipsel sind nur noch für bestimmte Kompilerversionen brauchbar.

Zum Problem des Threaderstellers: Codas hinweiß war schon Goldrichtig.
STL und Templates sind nicht gerade dicke Freunde des VC6. Man kann das mit etwas hängen und würgen zwar hinbekommen, aber das gelbe vom Ei ist es nicht (und hat dann oftmals auch nicht mehr viel mit der C++-Standardsyntax zu tun).
Ab Visual Studio 2003 wirds besser.....