diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html
index 79912034..4e6d4bf1 100644
--- a/doc/html/boost_config/boost_macro_reference.html
+++ b/doc/html/boost_config/boost_macro_reference.html
@@ -668,6 +668,24 @@
BOOST_NO_POINTER_TO_MEMBER_CONST
diff --git a/doc/html/index.html b/doc/html/index.html
index 0cfcd61f..9b92a6dc 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -960,7 +960,7 @@
-Last revised: April 21, 2008 at 09:16:51 GMT |
+Last revised: April 21, 2008 at 11:41:47 GMT |
|
diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk
index 6d43971c..f37303ba 100644
--- a/doc/macro_reference.qbk
+++ b/doc/macro_reference.qbk
@@ -176,6 +176,10 @@ Compiler requires inherited operator friend functions to be defined at
namespace scope, then using'ed to boost. Probably GCC specific. See
[@../../../../boost/operators.hpp ``] for example.
]]
+[[`BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS`][Compiler][
+The compiler does not correctly handle partial specializations
+which depend upon default arguments in the primary template.
+]]
[[`BOOST_NO_POINTER_TO_MEMBER_CONST`][Compiler][
The compiler does not correctly handle pointers to const member functions,
preventing use of these in overloaded function templates. See
diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp
index 11710156..826939f1 100644
--- a/include/boost/config/compiler/vacpp.hpp
+++ b/include/boost/config/compiler/vacpp.hpp
@@ -53,7 +53,7 @@
#endif
// Some versions of the compiler have issues with default arguments on partial specializations
-#define BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS
+#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp
index c0cdf71b..2e72b3f5 100644
--- a/include/boost/config/suffix.hpp
+++ b/include/boost/config/suffix.hpp
@@ -120,6 +120,15 @@
# define BOOST_NO_STD_ITERATOR_TRAITS
# endif
+//
+// Without partial specialization, partial
+// specialization with default args won't work either:
+//
+# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
+# define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# endif
+
//
// Without member template support, we can't have template constructors
// in the standard library either:
diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2
index e7dc80db..4ed0b926 100644
--- a/test/all/Jamfile.v2
+++ b/test/all/Jamfile.v2
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Mon Apr 21 10:10:52 2008
+# This file was automatically generated on Mon Apr 21 12:40:41 2008
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -280,6 +280,9 @@ test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run ../no_partial_spec_pass.cpp ]
[ compile-fail ../no_partial_spec_fail.cpp ] ;
+test-suite "BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS" :
+[ run ../no_part_spec_def_args_pass.cpp ]
+[ compile-fail ../no_part_spec_def_args_fail.cpp ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run ../no_priv_aggregate_pass.cpp ]
[ compile-fail ../no_priv_aggregate_fail.cpp ] ;
diff --git a/test/config_info.cpp b/test/config_info.cpp
index 89973731..4bedf417 100644
--- a/test/config_info.cpp
+++ b/test/config_info.cpp
@@ -983,6 +983,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
+ PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS);
PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE);
@@ -1029,6 +1030,9 @@ void print_boost_macros()
+
+
+
// END GENERATED BLOCK
diff --git a/test/config_test.cpp b/test/config_test.cpp
index b8265235..b9a477b6 100644
--- a/test/config_test.cpp
+++ b/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Mon Apr 21 10:10:52 2008
+// This file was automatically generated on Mon Apr 21 12:40:41 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -197,6 +197,11 @@ namespace boost_no_operators_in_namespace = empty_boost;
#else
namespace boost_no_template_partial_specialization = empty_boost;
#endif
+#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#include "boost_no_part_spec_def_args.ipp"
+#else
+namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
+#endif
#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
#include "boost_no_priv_aggregate.ipp"
#else
@@ -1026,6 +1031,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_partial_specialization_implicit_default_args::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_private_in_aggregate::test())
{
std::cerr << "Failed test for BOOST_NO_PRIVATE_IN_AGGREGATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
|