I just checked in changes to the intel-win32-tools.jam file which enable argument-dependent lookup for all versions, since we were were incorrectly operating as though it was enabled for v7.1 anyway. I think we are still out-of-synch with the config, though. The config for the intel compiler contains:
# 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) // That can't be right, since it supports template template // arguments (reported by Dave Abrahams) # ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP # endif # define BOOST_NO_SWPRINTF # endif I have two questions about this: 1. Is there a reason we're checking _MSC_VER here? 2. Can we just eliminate the #define for BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP? I ran the config tests for intel 5,6,7 and got the following interesting results, but I am at a loss to interpret them. Do the link errors with Intel7 mean that we failed to get the whchar_t support settings right? Some of those symbols only deal with char, so... What does it mean that intel5,6 still report BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP? I don't know what to do with this information. myjam -sTOOLS="intel5 intel6 intel7" --verbose-test config ... vc-C++ c:\build\status\bin\config_test.test\intel5\debug\runtime-link-dynamic\threading-multi\config_test.obj config_test.cpp c:\\boost\\libs/config/test/boost_no_excep_std.cxx(18): error: namespace "std" has no member "terminate" std::terminate(); ^ compilation aborted for c:\boost\libs/config/test/config_test.cpp (code 2) execute-test c:\build\status\bin\config_test.test\intel6\debug\runtime-link-dynamic\threading-multi\config_test.run 1 file(s) copied. ====== BEGIN OUTPUT ====== *** No errors detected ====== END OUTPUT ====== vc-Link c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe xilink: executing 'link' Creating library c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.lib and object c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exp config_test.exp : error LNK2001: unresolved external symbol "public: static bool const std::moneypunct<char,1>::intl" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@2_NB) config_test.exp : error LNK2001: unresolved external symbol "public: static bool const std::moneypunct<char,0>::intl" ([EMAIL PROTECTED]@D$0A@@std@@2_NB) config_test.exp : error LNK2001: unresolved external symbol "public: static bool const std::moneypunct<wchar_t,1>::intl" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@2_NB) config_test.exp : error LNK2001: unresolved external symbol "public: static bool const std::moneypunct<wchar_t,0>::intl" ([EMAIL PROTECTED]@_W$0A@@std@@2_NB) c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe : fatal error LNK1120: 4 unresolved externals CALL "c:/tools/intel/compiler70/ia32/bin/ICCVARS.BAT" > nul "c:/tools/intel/compiler70/ia32/bin/xilink" /nologo /DEBUG /subsystem:console /out:"c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe" @"c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.CMD" ...failed vc-Link c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe... ...skipped <status\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi>config_test.run for lack of <status\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi>config_test.exe... ... execute-test c:\build\status\bin\config_info.test\intel5\debug\runtime-link-dynamic\config_info.run 1 file(s) copied. ====== BEGIN OUTPUT ====== Intel C++ version 500 _CPPUNWIND =1 __cplusplus =1 _M_IX86 =600 _WIN32 =1 _WCHAR_T_DEFINED [no value] _CPPRTTI =1 _DLL =1 _MSC_EXTENSIONS =1 _MSC_VER =1200 _MT =1 __EXCEPTIONS =1 __EDG__ =1 __EDG_VERSION__ =245 __SIGNED_CHARS__ =1 __ARRAY_OPERATORS =1 __BOOL_DEFINED =1 __RTTI =1 __PLACEMENT_DELETE =1 __ICL =500 __INTEL_COMPILER =500 ********************************************************************* Dinkumware standard library version 1.x ********************************************************************* Detected Platform: Win32 Type char is signed Type wchar_t is unsigned byte order for type short =0 8 byte order for type int =0 8 16 24 byte order for type long =0 8 16 24 sizeof(wchar_t) =2 sizeof(short) =2 sizeof(int) =4 sizeof(long) =4 sizeof(float) =4 sizeof(double) =8 sizeof(long double) =8 CHAR_BIT =8 CHAR_MAX =127 WCHAR_MAX =((wchar_t)-1) SHRT_MAX =32767 INT_MAX =2147483647 LONG_MAX =2147483647L ********************************************************************* Boost version 103100 BOOST_USER_CONFIG =<boost/config/user.hpp> BOOST_COMPILER_CONFIG ="boost/config/compiler/intel.hpp" BOOST_STDLIB_CONFIG ="boost/config/stdlib/dinkumware.hpp" BOOST_PLATFORM_CONFIG ="boost/config/platform/win32.hpp" BOOST_DEDUCED_TYPENAME =typename BOOST_HAS_FTIME [no value] BOOST_HAS_LONG_LONG [no value] BOOST_HAS_MACRO_USE_FACET [no value] BOOST_HAS_MS_INT64 [no value] BOOST_HAS_THREADS [no value] BOOST_HAS_WINTHREADS [no value] BOOST_INTEL =500 BOOST_MSVC_STD_ITERATOR =1 BOOST_MSVC6_MEMBER_TEMPLATES [no value] BOOST_NESTED_TEMPLATE =template BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP [no value] BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS [no value] BOOST_NO_HASH [no value] BOOST_NO_INTEGRAL_INT64_T [no value] BOOST_NO_INTRINSIC_WCHAR_T [no value] BOOST_NO_MS_INT64_NUMERIC_LIMITS [no value] BOOST_NO_SLIST [no value] BOOST_NO_STD_ALLOCATOR [no value] BOOST_NO_STD_ITERATOR [no value] BOOST_NO_STD_ITERATOR_TRAITS [no value] BOOST_NO_STD_MIN_MAX [no value] BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN [no value] BOOST_NO_STD_USE_FACET [no value] BOOST_NO_STDC_NAMESPACE [no value] BOOST_NO_SWPRINTF [no value] BOOST_NO_TEMPLATE_TEMPLATES [no value] BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS [no value] BOOST_NO_VOID_RETURNS [no value] BOOST_STD_EXTENSION_NAMESPACE =std BOOST_UNREACHABLE_RETURN(0) [no value] ====== END OUTPUT ====== **passed** c:\build\status\bin\config_info.test\intel5\debug\runtime-link-dynamic\config_info.test ... execute-test c:\build\status\bin\config_info.test\intel6\debug\runtime-link-dynamic\config_info.run 1 file(s) copied. ====== BEGIN OUTPUT ====== Intel C++ version 600 _CPPUNWIND =1 __cplusplus =1 _M_IX86 =600 _WIN32 =1 _CPPRTTI =1 _DLL =1 _MSC_EXTENSIONS =1 _MSC_VER =1300 _MT =1 _NATIVE_WCHAR_T_DEFINED =1 __EXCEPTIONS =1 __EDG__ =1 __EDG_VERSION__ =245 __SIGNED_CHARS__ =1 __ARRAY_OPERATORS =1 __BOOL_DEFINED =1 __RTTI =1 __PLACEMENT_DELETE =1 __ICL =600 __INTEL_COMPILER =600 ********************************************************************* Dinkumware standard library version 310 _CPPLIB_VER =310 _HAS_EXCEPTIONS =1 _HAS_TEMPLATE_PARTIAL_ORDERING =0 ********************************************************************* Detected Platform: Win32 Type char is signed Type wchar_t is unsigned byte order for type short =0 8 byte order for type int =0 8 16 24 byte order for type long =0 8 16 24 sizeof(wchar_t) =2 sizeof(short) =2 sizeof(int) =4 sizeof(long) =4 sizeof(float) =4 sizeof(double) =8 sizeof(long double) =8 CHAR_BIT =8 CHAR_MAX =127 WCHAR_MAX =((wchar_t)-1) SHRT_MAX =32767 INT_MAX =2147483647 LONG_MAX =2147483647L ********************************************************************* Boost version 103100 BOOST_USER_CONFIG =<boost/config/user.hpp> BOOST_COMPILER_CONFIG ="boost/config/compiler/intel.hpp" BOOST_STDLIB_CONFIG ="boost/config/stdlib/dinkumware.hpp" BOOST_PLATFORM_CONFIG ="boost/config/platform/win32.hpp" BOOST_DEDUCED_TYPENAME =typename BOOST_HAS_FTIME [no value] BOOST_HAS_LONG_LONG [no value] BOOST_HAS_MS_INT64 [no value] BOOST_HAS_NRVO [no value] BOOST_HAS_PARTIAL_STD_ALLOCATOR [no value] BOOST_HAS_THREADS [no value] BOOST_HAS_WINTHREADS [no value] BOOST_INTEL =600 BOOST_MSVC6_MEMBER_TEMPLATES [no value] BOOST_NESTED_TEMPLATE =template BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP [no value] BOOST_NO_HASH [no value] BOOST_NO_SLIST [no value] BOOST_NO_STD_ITERATOR_TRAITS [no value] BOOST_NO_STD_LOCALE [no value] BOOST_NO_STD_MESSAGES [no value] BOOST_NO_STD_USE_FACET [no value] BOOST_NO_STD_WSTREAMBUF [no value] BOOST_NO_SWPRINTF [no value] BOOST_STD_EXTENSION_NAMESPACE =std BOOST_UNREACHABLE_RETURN(0) [no value] ====== END OUTPUT ====== **passed** c:\build\status\bin\config_info.test\intel6\debug\runtime-link-dynamic\config_info.test ... execute-test c:\build\status\bin\config_info.test\intel7\debug\runtime-link-dynamic\config_info.run 1 file(s) copied. ====== BEGIN OUTPUT ====== Intel C++ version 700 _CPPUNWIND =1 __cplusplus =1 _M_IX86 =700 _WIN32 =1 _CPPRTTI =1 _DLL =1 _MSC_EXTENSIONS =1 _MSC_VER =1310 _MT =1 _NATIVE_WCHAR_T_DEFINED =1 __EXCEPTIONS =1 __EDG__ =1 __EDG_VERSION__ =300 __SIGNED_CHARS__ =1 __ARRAY_OPERATORS =1 __BOOL_DEFINED =1 __RTTI =1 __PLACEMENT_DELETE =1 __ICL =700 __INTEL_COMPILER =700 ********************************************************************* Dinkumware standard library version 313 _CPPLIB_VER =313 _GLOBAL_USING =1 _HAS_EXCEPTIONS =1 ********************************************************************* Detected Platform: Win32 Type char is signed Type wchar_t is unsigned byte order for type short =0 8 byte order for type int =0 8 16 24 byte order for type long =0 8 16 24 sizeof(wchar_t) =2 sizeof(short) =2 sizeof(int) =4 sizeof(long) =4 sizeof(float) =4 sizeof(double) =8 sizeof(long double) =8 CHAR_BIT =8 CHAR_MAX =127 WCHAR_MAX =((wchar_t)-1) SHRT_MAX =32767 INT_MAX =2147483647 LONG_MAX =2147483647L LLONG_MAX =0x7fffffffffffffff ULLONG_MAX =0xffffffffffffffff ********************************************************************* Boost version 103100 BOOST_USER_CONFIG =<boost/config/user.hpp> BOOST_COMPILER_CONFIG ="boost/config/compiler/intel.hpp" BOOST_STDLIB_CONFIG ="boost/config/stdlib/dinkumware.hpp" BOOST_PLATFORM_CONFIG ="boost/config/platform/win32.hpp" BOOST_DEDUCED_TYPENAME =typename BOOST_HAS_FTIME [no value] BOOST_HAS_LONG_LONG [no value] BOOST_HAS_MS_INT64 [no value] BOOST_HAS_NRVO [no value] BOOST_HAS_PARTIAL_STD_ALLOCATOR [no value] BOOST_HAS_THREADS [no value] BOOST_HAS_WINTHREADS [no value] BOOST_INTEL =700 BOOST_MSVC6_MEMBER_TEMPLATES [no value] BOOST_NESTED_TEMPLATE =template BOOST_NO_HASH [no value] BOOST_NO_SLIST [no value] BOOST_NO_SWPRINTF [no value] BOOST_STD_EXTENSION_NAMESPACE =std BOOST_UNREACHABLE_RETURN(0) [no value] ====== END OUTPUT ====== **passed** c:\build\status\bin\config_info.test\intel7\debug\runtime-link-dynamic\config_info.test vc-C++ c:\build\status\bin\limits_test.test\intel5\debug\runtime-link-dynamic\limits_test.obj limits_test.cpp c:\\boost\\libs/config/test/limits_test.cpp(68): error: more than one operator "<<" matches these operands: function "std::basic_ostream<_E, _Tr>::operator<<(std::_Bool={bool={bool}}) [with _E=char, _Tr=std::char_traits<char>]" <snip> operand types are: std::basic_ostream<char, std::char_traits<char>> << __int64 << " min: " << make_char_numeric_for_streaming(lim::min()) ^ detected during instantiation of "void test_integral_limits(const T &, const char *) [with T=__int64]" ...failed vc-C++ c:\build\status\bin\limits_test.test\intel5\debug\runtime-link-dynamic\limits_test.obj... execute-test c:\build\status\bin\limits_test.test\intel6\debug\runtime-link-dynamic\limits_test.run 1 file(s) copied. ====== BEGIN OUTPUT ====== Testing bool (size 1) min: 0, max: 1 Testing char (size 1) min: -128, max: 127 Testing signed char (size 1) min: -128, max: 127 Testing unsigned char (size 1) min: 0, max: 255 Testing wchar_t (size 2) min: 0, max: 65535 Testing short (size 2) min: -32768, max: 32767 Testing unsigned short (size 2) min: 0, max: 65535 Testing int (size 4) min: -2147483648, max: 2147483647 Testing unsigned int (size 4) min: 0, max: 4294967295 Testing long (size 4) min: -2147483648, max: 2147483647 Testing unsigned long (size 4) min: 0, max: 4294967295 Testing long long (size 8) min: -9223372036854775808, max: 9223372036854775807 Testing unsigned long long (size 8) min: 0, max: 18446744073709551615 Testing __int64 (size 8) min: -9223372036854775808, max: 9223372036854775807 Testing unsigned __int64 (size 8) min: 0, max: 18446744073709551615 Testing float IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0 min: 1.17549e-038, max: 3.40282e+038 infinity: 1.#INF, QNaN: -1.#IND hex value of max is: ffff7f7f hex value of infinity is: 0000807f hex value of qnan is: 0000c0ff hex value of snan is: 0000c0ff Testing double IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0 min: 2.22507e-308, max: 1.79769e+308 infinity: 1.#INF, QNaN: -1.#IND hex value of max is: ffffffffffffef7f hex value of infinity is: 000000000000f07f hex value of qnan is: 000000000000f8ff hex value of snan is: 000000000000f8ff Testing long double IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0 min: 2.22507e-308, max: 1.79769e+308 infinity: 1.#INF, QNaN: -1.#IND hex value of max is: ffffffffffffef7f hex value of infinity is: 000000000000f07f hex value of qnan is: 000000000000f8ff hex value of snan is: 000000000000f8ff *** No errors detected ====== END OUTPUT ====== **passed** c:\build\status\bin\limits_test.test\intel6\debug\runtime-link-dynamic\limits_test.test ...failed updating 3 targets... ...skipped 10 targets... ...updated 117 targets... Compilation exited abnormally with code 1 at Mon Jun 02 09:46:00 -- Dave Abrahams Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost