Boost logo

Boost :

Subject: Re: [boost] [locale] Review. Internationalization library?
From: Artyom (artyomtnk_at_[hidden])
Date: 2011-04-16 09:21:30

> > Why have you preferred to redo Boost.DateTime?
> If the DateTime library is redone, shouldn't it be released as a separated
>one, DateTime2?

No, because they have very different purposes.

There is almost no locale dependent libraries in Boost while
is strictly locale dependent.

It provides same interface for different calendars and they may be changed in
the runtime.

> > Do your classes preserve the same interface than Boost.DateTime?
> If not, does the documentation show the differences in a specific section?

Actually almost everything there is different:

> If we follow the Chrono design, shouldn't the calendar be a template parameter
>of the dattime class?
> What about rewriting the following
> date_time some_point = period::year * 1995 + period::january + period::day*1;
> as
> date_time some_point = year(1995) + january + day(1);
> ?

Actually it may be good idea. I'm already thinking on improvement
of date_time API due to issues rise in the review and it seems that it
may be one of the approaches,

> Why your datatime class output by default as a number? Why there is no a
>default format?

Because date_time is approximately a number that represents a time point
in UTC (POSIX time) - seconds since Jan 1, 1970 GMT without leap seconds.

But it under the hood it allows to perform date-time calculations
according to current locale's rules.

It outputs number because "it is a number of seconds since..."
and the actual stream formatters are responsible to formatting

It is covered by the links above.

Basically there is a separation of roles:

- date_time calculates times
- iostream formats numbers
- numeric representation connects between them.

> Best,
> Vicente

Thanks for the comments,

Boost list run by bdawes at, gregod at, cpdaniel at, john at