|
Boost : |
From: Paul A Bristow (pbristow_at_[hidden])
Date: 2006-06-24 09:33:35
A further quick question on this problem.
It is my custom (having a strong view that it aids readers - including me -
of my programs) to write
#include <limits>
using std::numeric_limits;
How do I avoid min/max macro problems when writing, for example,
return numeric_limits<double>::max(); ?
(numeric_limits<double>)::max(); ???
Or have I done it already?
Thanks
Paul
--- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow_at_[hidden] | -----Original Message----- | From: boost-bounces_at_[hidden] | [mailto:boost-bounces_at_[hidden]] On Behalf Of Eric Niebler | Sent: 20 June 2006 20:26 | To: boost_at_[hidden] | Subject: Re: [boost] [test] test/included min max macro issue | | | Paul A Bristow wrote: | > | > | > | -----Original Message----- | > | From: boost-bounces_at_[hidden] | > | [mailto:boost-bounces_at_[hidden]] On Behalf Of Eric Niebler | > | | > | Just to clarify, all Boost libraries aim for complete | neutrality | > | regarding the min/max macros. They should compile cleanly | > | regardless of | > | whether the macros are defined or not, and should neither | > | cause them to | > | be defined (unless they must include system headers which | > | define them) | > | or undefine them. | > | | > | http://boost.org/more/lib_guide.htm | > | > Says: | > | > # If you want to call std::numeric_limits<int>::max(), use | > (std::numeric_limits<int>::max)() instead. | > | > # If you want to call a min() or max() member function, | instead to doing | > obj.min(), use (obj.min)(). | > | > Just to be clear, are you saying that these forms should | ALWAYS be used in | > all code that might encounter windows.h or the min max | macros (which | > obviously includes all Boost code)? | > | > This is a minor PITA, but we could get used to it :-( | | | That's exactly what I'm saying. Any time your fingers type "min" or | "max", you should ask yourself if the min/max macros will | make a hash of | your code. If you forget, the Boost.Inspect tool, which is | run by the | release manager, will remind you. It automatically checks | for violations | of Boost's min/max guidelines. | | | -- | Eric Niebler | Boost Consulting | www.boost-consulting.com | _______________________________________________ | Unsubscribe & other changes: | http://lists.boost.org/mailman/listinfo.cgi/boost |
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk