"Alisdair Meredith" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > It appears the current borland compiler has several problems when > linking with the dyanmic version of the RTL, most noticably (in boost > regressions) wrt std::numeric limits. These problems go away when > linking statically to the RTL. Would it be viable to change the > regression builds to support this? > I think that the only correct fix is to fix STLPort. The problem is that:
(a) _STL_STATIC_CONST_INT_BUG (or some like that) is used to flag out of line integral constants, as used in numeric_limits<>, but the STLPort that ships with BCB6 incorrectly sets this flag as if BCB couldn't handle in-class integral constants (which it does handle) (b) A STLPort header (which I can remember now) figures that when linking to the RTL DLL, which in turn directs usage of dynamic STLPort (DLL), decides to set _STL_STATIC_CONST_INT_BUG (whatever the compiler) because according to the comment 'integral constants are not exported' (!?) The real problem is that numeric_limits<> is useless in template metaprogramming since it doesn't expose true constant expressions, so the real fix has to be made here. > I have tried #define BOOST_NO_LIMITS in the borland config as a > workaround, but it seems the STL implementation itself will use <limits> > leading to duplicate definitions, causing more problems than it solves > (mainly fixes some issues for the interval library.) > Yeah. That's why I think this cannot be solved from the boost side. Fernando Cacciola _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost