On May 3, 2013, at 3:47 AM, "Vicente J. Botet Escriba"
You can even handle other orders that way:
date(month, unsigned, year); date(month, day, unsigned); date(unsigned, day, month); date(year, unsigned, month);
One can also be explicit for both day and year:
date(year, month, day); date(month, day, year); date(day, month, year); date(day, year, month); I don't think that the constructor should support different orderings.
It could, easily, so why not? Different locales have different preferred orderings. All can learn to use the descending magnitude order, but a little flexibility, without ambiguity, would be nice.
I'm assuming explicit constructors for day and year, of course. Of course. And implicit conversion to his representation, so that
date(2013, may, 3, no_check)
is yet valid.
That's where I disagree. If you have explicit constructors for year and day, and no constructor accepting two ::rep arguments, then your example won't compile. That's also what enables support for other argument orders.
We could have a factory make_date function that doesn't checks the validity of the date and avoids the no_check parameter
make_ymd_date(2013, may, 3)
I don't understand what no_check has to do with such a function. Add an overload that accepts no_check_t to get that. ___ Rob (Sent from my portable computation engine)