Boost logo

Boost Users :

From: Robert Ramey (ramey_at_[hidden])
Date: 2019-08-06 19:57:53


On 8/6/19 11:50 AM, Frédéric via Boost-users wrote:
>>> I think that some rational constructors can be marked noexcept.
>>> In particular:
>>> - default constructor: rational()
>>> - constructor from integer: rational(const T& n, typename
>>> enable_if_c<...>::type const* = 0)
>>
>> Careful: they would have to be conditionally noexcept to support
>> multiprecision types which may throw on those operations (memory
>> allocation).

Also, the safe numerics library uses boost rational to demonstrate the
usage of safe numeric types as arguments to other "numeric" types. This
is an example of a case where it makes sense for a type parameter to not
be noexcept.

>
> I see and the default constructor cannot use enable_if.
> The only possibility would be to have an additionnal bool template
> parameter is_pod<T> or has_nothrow_constructor<T>... Quite painful to
> implement.
>
> F
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net