Moderne Alternative zu ctime?
-
Hallo,
gibt es moderne oo Bibliotheken, die ctime ersetzen können? Vielleicht sogar in der STL?
Ich bin gerade mal wieder in die Verlegenheit gekommen Zeitrechnung in meinem Programm integrieren zu müssen und ich kann mich dunkel an nervtötende Erlebnisse mit ctime in der Vergangenheit erinnern. Ein kurzer Blick in die Referenzen hat meine Befürchtungen bestätigt. Das ist ein Stück uralter Code, der dringend einer Überarbeitung bedarf. Um so mehr hat es mich gewundert, dass es noch keine ernstzunehmende Alternative in der STL (oder überhaupt) zu finden gibt. Oder habe ich einfach nicht richtig gesucht?
-
Es gibt boost::date_time. Möglicherweise suchst du so was?
Lars
-
Ja, danke!
-
Schade nur, dass die STL noch nichts Vergleichbares besitzt. In meinem aktuellen Projekt versuche ich die Abhängigkeiten zu externen Libs minimal zu halten
-
Ich meine, gelesen zu haben, dass so was im TR1 oder TR2 drin ist. Ansonsten müsstest du dir halt selbst einen Wrapper darür schreiben, wenn es nicht allzu viel Aufwand ist.
-
enki schrieb:
Schade nur, dass die STL noch nichts Vergleichbares besitzt. In meinem aktuellen Projekt versuche ich die Abhängigkeiten zu externen Libs minimal zu halten
Warum?
Lars
-
In C++0x gibt es neue Zeitfunktionen: 20.10 in http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3090.pdf
Wenn du einen aktuellen GCC hast, dann kannst du die Sachen schon nutzen: http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01147.html
btw. STL ist die Bibliothek von SGI. Was du meinst ist die Standardlibrary!
-
> STL ist die Bibliothek von SGI.
Nein, die STL ist eine Bibliotheksvorgabe der ISO. SGI hat lediglich eine STL-Implementierung.
-
Ad aCTa schrieb:
> STL ist die Bibliothek von SGI.
Nein, die STL ist eine Bibliotheksvorgabe der ISO. SGI hat lediglich eine STL-Implementierung.
Nö. Es gab erst die STL und die wurde dann teilweise in die C++-Standardlibrary übernommen.
http://en.wikipedia.org/wiki/C%2B%2B_standard_library
http://en.wikipedia.org/wiki/Standard_Template_Library
-
Oh, das wusste ich nicht. Ich dachte, Stepanov hätte das für die ISO gemacht.

-
Was genau willst du machen? Du sagst du willst zeitrechnung machen. Heißt das du willst messen wie lange dein Programm von Punkt A nach Punkt B brauch?
Da kann ich dir nu Boost Progress / Timer empfehlen.
Kurzes Beispiel:
#include <boost/progress.hpp> int main() { // ... boost::timer tmr; // Startet den Timer // ... double elapsedMilliSeconds = 1000. * tmr.elapsed(); // Gibt abgelaufene Zeit in ms zurück }Diese boost-library ist auch afaik plattformunabhängig.
-
Max3000 schrieb:
Was genau willst du machen? Du sagst du willst zeitrechnung machen. Heißt das du willst messen wie lange dein Programm von Punkt A nach Punkt B brauch?
Hmm, das ist so ein Punkt der leider noch nicht ganz klar ist. Prinzipiell brauche ich Kalender- und Zeitdauer-Rechnungen.
Vorerst werde ich es mit wxSkips Vorschlag halten und einen Wrapper für die ptime Klasse von boost::date_time schreiben -- bzw zwei Wrapper, einen für Kalenderdaten den anderen für Zeitdauern.
Danke für die ganzen Vorschläge.