Boost logo

Boost :

Subject: Re: [boost] [gsoc 2013] draft proposal for chrono::date
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-05-04 12:16:18


Le 04/05/13 17:57, Anurag Kalia a écrit :
>> Just to be sure I'm not trying to solve an issue that doesn't needs to
>> be solved:
>> Given
>>
>> date d = day(33) / month(5) / 2013;
>>
>> Note that I has a typo on the day. This is equivalent on my
>> implementation to
>>
>> date d(year(2013), month(5), day(33));
>>
>> If I want to throw a bad date exception I would need to check that the
>> day/month and year are in range. Next follows the code:
>>
>> days_date::days_date(year y, month m, day d)
>> {
>> if (set_if_valid_date(y, m, d))
>> return;
>> throw bad_date("day " + to_string(d) + " is out of range for "
>> + to_string(y) + '-' + to_string(m));
>> }
>>
>> bool days_date::set_if_valid_date(year y, month m, day d) noexcept;
> I have a question here. Why are we not throwing the exception from
> set_if_valid_date() itself? Why did we include noexcept in its definition?
>
>
set_if_valid_date allows the user make changes without using exceptions.
This is useful on some contexts.

Best,
Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk