Boost logo

Boost-Build :

From: Eric Niebler (eric_at_[hidden])
Date: 2004-02-28 16:06:39


All in all, my extensive min/max changes went smoother than I
anticipated. We did have one casualty, however -- the Borland 0x0564
tooset, which I do not have access to. The failure is:

Error E2357 C:\boost\site\boost/minmax.hpp 46: Reference initialized
with 'unsigned long', needs lvalue of type 'unsigned long' in function
const unsigned long & std_max<unsigned long>(const unsigned long &,const
unsigned long &)
*** 1 errors in Compile ***

The code in question is:

template< typename T >
inline T const & std_max( T const & a, T const & b )
{
#if defined(__COMO__) || defined(BOOST_INTEL) ||
defined(BOOST_NO_STD_MIN_MAX)
using std::max;
#elif defined(BOOST_NO_STDC_NAMESPACE)
using ::max;
#else
using std::max;
#endif

return max BOOST_PREVENT_MACRO_SUBSTITUTION ( a, b ); /*** here ***/
}

The error is on the line marked ***here***. What I'm guessing is that
Borland defines an overload of std::max for intrinsic types, or just
unsigned long, which does not return a reference, but I'm just guessing
here. Can anybody who has access to this toolset confirm? And how can
I test a fix?

Thanks in advance,
Eric

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk