Compilerfehler mit VC++2003 bitte um Hilfe
-
Hi,
ich bin neu hier und hab gleich mal eine Frage.
Vorab, ich habe folgenden Compiler:
Microsoft Visual c++.net Stardart Version 2003.Nun zu meinem Problem, wenn ich die timehandling.h compilen will, kommt folgender Fehler:
d:\Eigene Dateien\XXXX\XXXXXXXXX\new.dll\timehandling.h(53): error C2993: 'float': Ungültiger Typ für den Nichttyp-Vorlagenparameter 'Interval'
wenn ich dann den Fehler doppelklicke, komm ich auf folgenden code:
[/cpp]
template < float Interval, int MaxEvents = 12 >
class EventCounter
{
public:
// returns number of events since last call, maximal 12
int get()
{
register int n = 0;
while(reftime<ClientTime::current)
{
reftime += Interval;
++n;
if(n>MaxEvents) { reset(); return 1; }
}
return n;
}
[cpp]Die Fehleranzeige ist in der ersten Zeile.
Ich hoffe mir kann schnell einer helfen.
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum MFC mit dem Visual C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Kann mir bitte einer helfen.
-
Hallo,
nach ANSI-C++-Standard ist der Code tatsächlich nicht korrekt, du kannst die Fehlermeldung wortwörtlich übersetzen, ein float kann kein template-Parameter sein:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/C2993.asp
Du kannst also nur einen workaround basteln, wie z.B. vorgeschlagen hier (Übergabe im Konstruktor):
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20795567.html
MfG
-
Kannst du mir bitte dann mal sagen, wie dann der code auszusehen hat??
Ich werde nicht richtig schlau aus den angaben.
Wäre sehr nett, wenn mit jemand helfen könnte.
-
ich brauche echt Hilfe.
-
Gibt doch Code im 2ten Link.
Auch MS im ersten Link gibt eine Hilfestellung dazu.
-
Beim 2ten link ist keine Hilfestellung gegben, sondern auch nur einer, der den gleichen Fehler hat, um die Lösung zu sehen, muss man sich anmeleden und einen monatlichen Beitrag von 10$ bezahlen..
Wo steht bei MSDN Hilfestellung??
Wenn da eine steht, dann sag mir mal, wie ich es auf meinen code bezogen lösen kann.
Was sicher gehen würde, ist, dass ich einen älteren compiler nehmen müsset, denn es steht ja in MSDN drin, dass diese Funktion erst ab VS2003 als Fehler angezeigt wird.
Ich würde das aber gene mit VS2003 machen, also bitte hilfe.Edit:
Ich zitiere wörtlich von MSDN:
"If it is a class template, there is no easy workaround."
Mehr steht dazu nicht und wie man unschwer erkennen kann, ist mein code ein class template.