From fd367acdcb695973eedd9a72652dc62036e1f1e3 Mon Sep 17 00:00:00 2001
From: John Maddock
Date: Thu, 11 Dec 2003 12:00:30 +0000
Subject: [PATCH] Added new macro
BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
[SVN r21222]
---
config.htm | 27 +-
configure | 412 +++++++++++++++-------
include/boost/config/compiler/borland.hpp | 1 +
include/boost/config/suffix.hpp | 7 +
test/Jamfile | 8 +-
test/boost_no_using_breaks_adl.ipp | 72 ++++
test/config_test.cpp | 229 +-----------
test/no_sfinae_fail.cpp | 36 ++
test/no_sfinae_pass.cpp | 36 ++
test/no_using_breaks_adl_fail.cpp | 36 ++
test/no_using_breaks_adl_pass.cpp | 36 ++
11 files changed, 533 insertions(+), 367 deletions(-)
create mode 100644 test/boost_no_using_breaks_adl.ipp
create mode 100644 test/no_sfinae_fail.cpp
create mode 100644 test/no_sfinae_pass.cpp
create mode 100644 test/no_using_breaks_adl_fail.cpp
create mode 100644 test/no_using_breaks_adl_pass.cpp
diff --git a/config.htm b/config.htm
index f41d9951..8939d351 100644
--- a/config.htm
+++ b/config.htm
@@ -96,13 +96,13 @@ export LDFLAGS="-DAportable"
export LIBS="-lpthread"
./configure
However you run the configure script, when it finishes you will find a new
- header - user.hpp - located in the <boost-root/libs/config/>
- directory. Note that configure does not install this header into your boost
- include path by default. This header contains all the options
- generated by the configure script, plus a header-section that contains the user
- settable options from the default version of
- user.hpp (located under <boost-root>/boost/config/). There are two
- ways you can use this header:
+ header - user.hpp - located in the <boost-root/libs/config/> directory. Note
+ that configure does not install this header into your boost include path by
+ default. This header contains all the options generated by the
+ configure script, plus a header-section that contains the user settable options
+ from the default version of user.hpp (located
+ under <boost-root>/boost/config/). There are two ways you can use this
+ header:
Option 1: copy the header into <boost-root>/boost/config/ so that it
replaces the default user.hpp provided
by boost. This option allows only one configure-generated setup; boost
@@ -384,6 +384,15 @@ export LIBS="-lpthread"
The compiler exibits certain partial specialisation bug - probably Borland C++
Builder specific. |
+
+ BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL |
+ Compiler |
+ Argument dependent lookup fails if there is a using
+ declaration for the symbol being looked up in the current scope. For
+ example, using boost::get_pointer; prevents ADL from finding overloads of
+ get_pointer in namespaces nested inside boost (but not elsewhere).
+ Probably Borland specific. |
+
BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP |
Compiler |
@@ -1187,7 +1196,7 @@ namespace boost{
// defining BOOST_WHATEVER_NO_LIB, or if this is one of our own
// source files (signified by BOOST_WHATEVER_SOURCE):
//
-#if !defined(BOOST_WHATEVER_NO_LIB) && !defined(BOOST_WHATEVER_SOURCE)
+#if !defined(BOOST_WHATEVER_NO_LIB) && !defined(BOOST_WHATEVER_SOURCE)
# define BOOST_LIB_NAME boost_whatever
# ifdef BOOST_WHATEVER_DYN_LINK
# define BOOST_DYN_LINK
@@ -1395,4 +1404,4 @@ int test()