Boost logo

Boost :

From: JOAQUIN LOPEZ MU?Z (joaquin_at_[hidden])
Date: 2005-08-06 14:02:40


A bit of context:
* Intel 9.0 has __EDG_VERSION__==304 (under Win32/Linux), whereas
prior versions of the compiler have lower values of this
macro.
* BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL is defined
for __EDG_VERSION__<=303, that is, for all Intel compilers
up to (and including) 8.1, under Win32/Linux.
* Under Win32, all Intel toolset .jams define the compiler
option --arg_dep_lookup, which explicitly enables ADL
(disabled by default.) I don't know what the situation
of ADL is for Intel under Linux, but in any case this
switch is *not* used for that OS.

Current RC tests for Intel 9.0 under Linux show
the problem listed at http://tinyurl.com/8f5g6
One piece of code where the error pops up is like this

#if defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
  ::boost::multi_index::detail::swap(i1,get<1>(es2));
#else
  using std::swap;
  swap(i1,get<1>(es2));
#endif

Given the __EDG_VERSION__ number of this compiler, it
is the second preprocessor branch that is compiled, and it
fails to use the user-supplied global swap() in favor
of std::swap(), hence the error.

However, this same tests succesfully passes for Intel 9.0
under Win32 (same __EDG_VERSION__ as the Linux case)!!

My conclusions:

* The fact that the test passes under Intel 9.0 for
Win32, for which BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
is *not* defined, suggests that __EDG_VERSION__<=303
is the right check for setting this macro.
* But the same test fails under Intel 9.0 for Linux, which
hints at an ADL problem other than that controlled by
BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL.

Could it be that Intel compilers under Linux also necessitate
the --arg_dep_lookup compiler switch (which is currently not
set)? This looks like the only sensible conslusion from
the facts described.

Thanks and sorry for the long post,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


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