C
Crymes
Guest
Hi,
ich probiere gerade eine simple Stoppuhr in C++ zu schreiben.
Das ist mein Code:
Das funktioniert auch ohne Probleme.
Wenn ich jetzt allerdings den Rückgabetyp ändere zu
bekomme ich den Fehler "error: static assertion failed: rep cannot be a duration".
Weiß jemand wie man das mit dem Rückgabetyp vernünftig macht? Weil ich will nicht dass das grad nur durch Zufall funktioniert, der Code muss 100% verlässlich sein
ich probiere gerade eine simple Stoppuhr in C++ zu schreiben.
Das ist mein Code:
Code:
using namespace std;
std::chrono::steady_clock::time_point lastaction;
void updateTime()
{
lastaction = std::chrono::steady_clock::now();
}
std::chrono::duration<double> getTimeSinceLastAction()
{
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
std::chrono::duration<double> diff = now - lastaction;
return diff;
}
int main()
{
updateTime();
cout << getTimeSinceLastAction().count();
return 0;
Das funktioniert auch ohne Probleme.
Wenn ich jetzt allerdings den Rückgabetyp ändere zu
Code:
using namespace std;
std::chrono::steady_clock::time_point lastaction;
void updateTime()
{
lastaction = std::chrono::steady_clock::now();
}
std::chrono::duration<std::chrono::milliseconds> getTimeSinceLastAction()
{
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
std::chrono::duration<std::chrono::milliseconds> diff = now - lastaction;
return diff;
}
int main()
{
updateTime();
cout << getTimeSinceLastAction().count();
return 0;
Weiß jemand wie man das mit dem Rückgabetyp vernünftig macht? Weil ich will nicht dass das grad nur durch Zufall funktioniert, der Code muss 100% verlässlich sein


Wenn das sichergestellt ist, kann man das aber als Klassenvariable laufen lassen. Ansonsten kann man sich auch ein Konstrukt mit einem std::shared_ptr basteln, da wird das Objekt erst zerstört, wenn die letzte Referenz futsch ist.