This change excludes boost:: and boost::detail:: namespaces from ADL for unqualified function calls (e.g. algorithms). This reduces the possibility of name clashes with other libraries and user's code. One of the effects should be fixing test failures on gcc 4.2 and 4.4 due to clashed with Boost.TypeTraits.
Also some of the functions marked with inline keyword.
Reverted: 2e099caceb9..21102938e8ccb
I'm going to reapply some of them soon, but it's easier to revert them
all first, as there are conflicts. Also the number of changes that were
inserted since then, mean that there would be a huge gap between related
changes.
whenever x = j[n] and x == x are. j[n] may be a proxy convertible to
typeof(x) and x == x may use a templated operator==, which wouldn't
match the proxy.
[SVN r20887]