Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-05-20 10:46:15


Hi,

I just tried compiling something with intel 5.0 + STLPort on Win32.

integer_traits.hpp gave me:

z:\\boost\\boost/integer_traits.hpp(45): error: enumeration value is out of
"int" range
    BOOST_STATIC_CONSTANT(T, const_min = min_val);

    ^
          detected during:
            instantiation of class "boost::detail::integer_traits_base<T,
min_val, max_val> [with T=__int64, min_val=-9223372036854775808i64,
max_val=9223372036854775807i64]" at line 176
            instantiation of class "boost::integer_traits<__int64>" at line
175

...

Now, this is due to the fact that BOOST_NO_INCLASS_MEMBER_INITIALIZATION is
defined for Intel when it's emulating VC6 (or atop the VC6 lib, I'm not
sure):

# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7
(Peter Dimov)

      // Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
      // in the frontend even in "strict" mode, unless you use
      // -Qoption,cpp,--arg_dep_lookup. (reported by Kirk Klobe & Thomas
Witt)
      // Similarly, -Qoption,cpp,--new_for_init enables new-style "for"
loop
      // variable scoping. (reported by Thomas Witt)
      // Intel C++ 6.0 (currently in Beta test) doesn't have any front-end
      // changes at all. (reported by Kirk Klobe)
# ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# define BOOST_NO_SWPRINTF
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# endif

I don't understand why we'd define BOOST_NO_INCLASS_MEMBER_INITIALIZATION,
since it's clearly a false assertion for Intel (even 5.0) that it doesn't
support in-class initialization of static integral constant members.

I'm taking out the #define in my local copy, and will wait a day to hear
from people about the reasons it's defined before checking anything in...

-Dave

+---------------------------------------------------------------+
                  David Abrahams
      C++ Booster (http://www.boost.org) O__ ==
      Pythonista (http://www.python.org) c/ /'_ ==
  resume: http://users.rcn.com/abrahams/resume.html (*) \(*) ==
          email: david.abrahams_at_[hidden]
+---------------------------------------------------------------+


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