Changed macro BOOST_PARTIAL_SPECIALIZATION_EXPLICIT_ARGS to BOOST_NO_PARTIAL_SPECIALIZATION_DEFAULT_ARGS.

Changed <utility> to <boost/config/no_tr1/utility.hpp> in order to prevent cyclic dependencies between Fusion Tuples and TR1.

[SVN r44692]
This commit is contained in:
John Maddock
2008-04-21 12:06:02 +00:00
parent 5bad377e04
commit b4eaf1eb50
8 changed files with 52 additions and 4 deletions

View File

@@ -668,6 +668,24 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS</span></code>
</p>
</td>
<td>
<p>
Compiler
</p>
</td>
<td>
<p>
The compiler does not correctly handle partial specializations which
depend upon default arguments in the primary template.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_POINTER_TO_MEMBER_CONST</span></code>

View File

@@ -960,7 +960,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: April 21, 2008 at 09:16:51 GMT</small></p></td>
<td align="left"><p><small>Last revised: April 21, 2008 at 11:41:47 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -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 `<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

View File

@@ -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

View File

@@ -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:

View File

@@ -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 ] ;

View File

@@ -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

View File

@@ -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;