34 votes

Boost.Chrono vs. Boost.Date_Time

Avec la version 1.47 de Boost, la bibliothèque Chrono a été introduite. Boost.Chrono est-elle destinée à remplacer Boost.Date_Time ?

Si ce n'est pas le cas, quelles sont les différences entre eux et quand dois-je les utiliser ?

Quand dois-je envisager de remplacer Boost.Date_Time par Boost.Chrono dans un projet existant ?

43voto

Nicol Bolas Points 133791

De Boost.Chrono documentation :

Boost.Chrono a pour but d'implémenter les nouvelles fonctionnalités temporelles en C++0x, comme proposé dans le document N2661 - A Foundation to Sleep On. Ce document fournit le contexte et la motivation pour les décisions clés de conception et est la source d'une bonne partie de l'information dans cette documentation.

Plus précisément, Boost.DateTime concerne les dates et les heures. Il dispose de nombreuses fonctions permettant de formater les dates pour les afficher en fonction de la localisation et de diverses autres choses. Mais il existe également des fonctions permettant d'obtenir des dates et des heures, ainsi que de les exploiter.

Boost.Chrono semble se concentrer sur le traitement des intervalles de temps. Il n'y a pas de mesure supérieure aux "heures", et il n'y a pas de concept de date du tout. En effet, les moments dans le temps ne sont pris en charge que comme décalage par rapport à un moment particulier dans le temps (temps depuis le début du processus, temps depuis une "époque" fixe comme le 1er janvier 1970, etc).

Les deux semblent complémentaires, plutôt que concurrentes, bien qu'il y ait un certain chevauchement. Il y a beaucoup de choses que DateTime fait et que Chrono ne fait pas, et il y a des choses que Chrono fait et que DateTime ne fait pas. Malheureusement, il ne semble pas y avoir d'interopérabilité entre les deux, et il faudra donc convertir manuellement les durées de Chrono en équivalents de DateType.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X