Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2007-06-29 14:17:17


Michael Marcin wrote:
> Hello,
>
> I haven't looked much at the math toolkit yet but I was interested in
> how it handled errors so I peeked at common_error_handling.hpp
>
> I see it explicitly qualifies each all to isfinite with
> (boost::math::isfinite)( value ).
>
> I assume this is to prevent macro expansion however this means that
> if a
> UDT is passed in the user is required to add their isfinite to the
> boost::math namespace instead of having it be reachable through ADL.
>
> Is this intentional? I think the following would work if it's not.
>
> using boost::math::isfinite;
> isfinite BOOST_PREVENT_MACRO_SUBSTITUTION( value );
>
> I'm not sure if UDT support for this library has been considered in
> its design but I'm working to provide a fixed-point math library that
> I hope
> can be used as a real type just like float and double. I would like
> to
> be able to keep as much as possible in the library's namespace.

Good points, but if we rely on ADL don't we get ambiguities between
boost::math::isfinite and ::isfinite (when defined as a global function)?

Thanks, John.


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