In realtà non sono d'accordo con la "risposta accettata". È semplicemente sbagliato da parte di Microsoft e può causare aspettative non realistiche. Lo standard C++ 11 richiede system_clock
per implementare to_time_t
e from_time_t
, ma non ci sono tali requisiti per steady_clock
e high_resolution_clock
. Non è una relazione "è-a", poiché steady_clock
non implementa tutte le interfacce richieste di system_clock
; né dovrebbe farlo. L'azione di Microsoft non ha senso per me: come ci si può aspettare che lo steady_clock
abbia to_time_t
mentre si evita il problema dell'asimmetria temporale?
Quindi, in poche parole, Microsoft ha commesso un errore e sono lenti a risolverlo. Secondo Stephan T. Lavavej, "non ha avuto il tempo di sistemare questo nel 2013 RTM" e "tutti gli orologi devono essere reimplementati, come rilevato da diversi bug attivi". Vedi https://connect.microsoft.com/VisualStudio/feedback/details/719443/.
Immagino che non sia stato lui a scrivere la falsa implementazione dell'immondizia all'inizio.
EDIT: Sono un po 'sorpreso di essere stato svalutato, anche un po' turbato. I miei downvoters e disaccordi, ti rendi conto che stai razionalizzando un'implementazione rotta, che potrebbe essere cambiata e risolta presto? Assegnami un nome a un'implementazione reale che ha il numero steady_clock
ereditato da system_clock
e non è danneggiato ....
FATTO UPDATE nel mese di luglio 2014: A partire dal Visual Studio 2014 CTP2, steady_clock
eredita non è più da system_clock
....
fonte
2013-12-30 10:39:58
Destra, questa è l'eredità di interfaccia, non implementazione eredità (anche se generalmente in C++ si potrebbe avere entrambi). E un orologio costante soddisfa l'interfaccia di un orologio instabile. –
@ BenVoigt Non credo che "un orologio costante soddisfi l'interfaccia di un orologio instabile". 'system_clock' supporta' from_time_t' e 'to_time_t', che non sono abbastanza significativi per un' steady_clock'. E un 'steady_clock' o' high_resolution_clock' potrebbe non supportare l'intera gamma di 'time_t' (specialmente sulle piattaforme a 32 bit). –
@YongweiWu: Stai confondendo costante vs instabile con tempo relativo rispetto assoluto. –