Changeset 44692


Ignore:
Timestamp:
Apr 21, 2008, 12:06:02 PM (10 years ago)
Author:
John Maddock
Message:

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.

Location:
trunk
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/boost/config/compiler/vacpp.hpp

    r42436 r44692  
    5454
    5555// Some versions of the compiler have issues with default arguments on partial specializations
    56 #define BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS
     56#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
    5757
    5858
  • trunk/boost/config/suffix.hpp

    r44171 r44692  
    119119      && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
    120120#     define BOOST_NO_STD_ITERATOR_TRAITS
     121#  endif
     122
     123//
     124// Without partial specialization, partial
     125// specialization with default args won't work either:
     126//
     127#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
     128      && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
     129#     define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
    121130#  endif
    122131
  • trunk/boost/fusion/adapted/array/detail/category_of_impl.hpp

    r40392 r44692  
    99#define BOOST_FUSION_CATEGORY_OF_IMPL_27122005_1044
    1010
    11 #include <utility>
     11#include <boost/config/no_tr1/utility.hpp>
    1212
    1313namespace boost { namespace fusion {
  • trunk/boost/fusion/adapted/array/tag_of.hpp

    r40766 r44692  
    2626    {
    2727        template<typename T, std::size_t N>
    28 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     28#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    2929        struct tag_of<boost::array<T,N>, void >
    3030#else
  • trunk/boost/fusion/adapted/boost_tuple/tag_of.hpp

    r40766 r44692  
    3434            class T5, class T6, class T7, class T8, class T9
    3535        >
    36 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     36#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    3737        struct tag_of<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>, void >
    3838#else
     
    4444
    4545        template <class Head, class Tail>
    46 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     46#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    4747        struct tag_of<tuples::cons<Head, Tail>, void >
    4848#else
  • trunk/boost/fusion/adapted/std_pair.hpp

    r40766 r44692  
    1212#include <boost/fusion/adapted/struct.hpp>
    1313#include <boost/mpl/int.hpp>
    14 #include <utility>
     14#include <boost/config/no_tr1/utility.hpp>
    1515
    1616namespace boost { namespace fusion
     
    2121    {
    2222        template <typename T1, typename T2>
    23 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     23#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    2424        struct tag_of<std::pair<T1, T2>, void >
    2525#else
  • trunk/boost/fusion/adapted/std_pair/detail/category_of_impl.hpp

    r40392 r44692  
    99#define BOOST_FUSION_CATEGORY_OF_IMPL_24122005_1731
    1010
    11 #include <utility>
     11#include <boost/config/no_tr1/utility.hpp>
    1212
    1313namespace boost { namespace fusion {
  • trunk/boost/fusion/adapted/std_pair/std_pair_iterator.hpp

    r40392 r44692  
    1515#include <boost/mpl/int.hpp>
    1616#include <boost/mpl/minus.hpp>
    17 #include <utility>
     17#include <boost/config/no_tr1/utility.hpp>
    1818
    1919namespace boost { namespace fusion
  • trunk/boost/fusion/adapted/std_pair/tag_of.hpp

    r40392 r44692  
    1111#include <boost/fusion/support/tag_of_fwd.hpp>
    1212
    13 #include <utility>
     13#include <boost/config/no_tr1/utility.hpp>
    1414
    1515namespace boost { namespace fusion {
  • trunk/boost/fusion/adapted/struct/adapt_assoc_struct.hpp

    r42164 r44692  
    3232#include <boost/preprocessor/cat.hpp>
    3333#include <boost/mpl/int.hpp>
    34 #include <utility>
     34#include <boost/config/no_tr1/utility.hpp>
    3535
    3636namespace boost { namespace fusion { namespace extension {
  • trunk/boost/fusion/adapted/struct/adapt_struct.hpp

    r40392 r44692  
    2828#include <boost/preprocessor/cat.hpp>
    2929#include <boost/mpl/int.hpp>
    30 #include <utility>
     30#include <boost/config/no_tr1/utility.hpp>
    3131
    3232#define BOOST_FUSION_ADAPT_STRUCT(name, bseq)                                   \
  • trunk/boost/fusion/adapted/struct/detail/category_of_impl.hpp

    r40392 r44692  
    99#define BOOST_FUSION_CATEGORY_OF_IMPL_24122005_1731
    1010
    11 #include <utility>
     11#include <boost/config/no_tr1/utility.hpp>
    1212
    1313namespace boost { namespace fusion
  • trunk/boost/fusion/adapted/struct/struct_iterator.hpp

    r40392 r44692  
    1818#include <boost/mpl/int.hpp>
    1919#include <boost/mpl/minus.hpp>
    20 #include <utility>
     20#include <boost/config/no_tr1/utility.hpp>
    2121
    2222namespace boost { namespace fusion
  • trunk/boost/fusion/algorithm/transformation/transform.hpp

    r40766 r44692  
    2323
    2424        template <typename Sequence, typename F>
    25 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     25#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    2626        struct transform<Sequence, F, void_>
    2727#else
  • trunk/boost/fusion/algorithm/transformation/zip.hpp

    r40766 r44692  
    5555    {
    5656        template< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T) >
    57 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     57#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    5858        #define TEXT(z, n, text) , text
    5959        struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(ZIP_ITERATION), FUSION_MAX_ZIP_SEQUENCES, TEXT, void_) >
  • trunk/boost/fusion/container/generation/deque_tie.hpp

    r40830 r44692  
    5555    {
    5656        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    57 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     57#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    5858        #define TEXT(z, n, text) , text
    5959        struct deque_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_DEQUE_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/list_tie.hpp

    r40830 r44692  
    5555    {
    5656        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    57 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     57#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    5858        #define TEXT(z, n, text) , text
    5959        struct list_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/make_deque.hpp

    r40830 r44692  
    7474    {
    7575        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    76 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     76#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    7777        #define TEXT(z, n, text) , text
    7878        struct make_deque< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_DEQUE_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/make_list.hpp

    r40830 r44692  
    6767    {
    6868        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    69 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     69#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    7070        #define TEXT(z, n, text) , text
    7171        struct make_list< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/make_map.hpp

    r40830 r44692  
    7979          , BOOST_PP_ENUM_PARAMS(N, typename D)
    8080        >
    81 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     81#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    8282         #define TEXT(z, n, text) , text
    8383         struct make_map<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D) BOOST_PP_REPEAT_FROM_TO(N, FUSION_MAX_VECTOR_SIZE, TEXT, void_) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_)>
  • trunk/boost/fusion/container/generation/make_set.hpp

    r40830 r44692  
    6969    {
    7070        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    71 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     71#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    7272        #define TEXT(z, n, text) , text
    7373        struct make_set< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_SET_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/make_vector.hpp

    r40830 r44692  
    6767    {
    6868        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    69 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     69#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    7070        #define TEXT(z, n, text) , text
    7171        struct make_vector< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
  • trunk/boost/fusion/container/generation/map_tie.hpp

    r40830 r44692  
    8282          , BOOST_PP_ENUM_PARAMS(N, typename D)
    8383        >
    84 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     84#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    8585        #define TEXT(z, n, text) , text
    8686
  • trunk/boost/fusion/container/generation/vector_tie.hpp

    r40830 r44692  
    5454    {
    5555        template <BOOST_PP_ENUM_PARAMS(N, typename T)>
    56 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     56#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    5757        #define TEXT(z, n, text) , text
    5858        struct vector_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
  • trunk/boost/fusion/support/tag_of.hpp

    r40392 r44692  
    1717#include <boost/mpl/bool.hpp>
    1818#include <boost/mpl/if.hpp>
    19 #include <utility>
     19#include <boost/config/no_tr1/utility.hpp>
    2020
    2121namespace boost
  • trunk/boost/fusion/view/transform_view/transform_view.hpp

    r40766 r44692  
    7474    // Unary Version
    7575    template <typename Sequence, typename F>
    76 #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
     76#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
    7777    struct transform_view<Sequence, F, void_> : sequence_base<transform_view<Sequence, F, void_> >
    7878#else
  • trunk/libs/config/doc/html/boost_config/boost_macro_reference.html

    r44689 r44692  
    665665                See <a href="../../../../../boost/operators.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">operators</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
    666666                for example.
     667              </p>
     668              </td>
     669</tr>
     670<tr>
     671<td>
     672              <p>
     673                <code class="computeroutput"><span class="identifier">BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS</span></code>
     674              </p>
     675              </td>
     676<td>
     677              <p>
     678                Compiler
     679              </p>
     680              </td>
     681<td>
     682              <p>
     683                The compiler does not correctly handle partial specializations which
     684                depend upon default arguments in the primary template.
    667685              </p>
    668686              </td>
  • trunk/libs/config/doc/html/index.html

    r44689 r44692  
    961961</div>
    962962<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
    963 <td align="left"><p><small>Last revised: April 21, 2008 at 09:16:51 GMT</small></p></td>
     963<td align="left"><p><small>Last revised: April 21, 2008 at 11:41:47 GMT</small></p></td>
    964964<td align="right"><div class="copyright-footer"></div></td>
    965965</tr></table>
  • trunk/libs/config/doc/macro_reference.qbk

    r44689 r44692  
    176176namespace scope, then using'ed to boost. Probably GCC specific. See
    177177[@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
     178]]
     179[[`BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS`][Compiler][
     180The compiler does not correctly handle partial specializations
     181which depend upon default arguments in the primary template.
    178182]]
    179183[[`BOOST_NO_POINTER_TO_MEMBER_CONST`][Compiler][
  • trunk/libs/config/test/all/Jamfile.v2

    r44689 r44692  
    22# Regression test Jamfile for boost configuration setup.
    33# *** DO NOT EDIT THIS FILE BY HAND ***
    4 # This file was automatically generated on Mon Apr 21 10:10:52 2008
     4# This file was automatically generated on Mon Apr 21 12:40:41 2008
    55#  by libs/config/tools/generate.cpp
    66# Copyright John Maddock.
     
    281281[ run ../no_partial_spec_pass.cpp ]
    282282[ compile-fail ../no_partial_spec_fail.cpp ] ;
     283test-suite "BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS" :
     284[ run ../no_part_spec_def_args_pass.cpp ]
     285[ compile-fail ../no_part_spec_def_args_fail.cpp ] ;
    283286test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
    284287[ run ../no_priv_aggregate_pass.cpp ]
  • trunk/libs/config/test/config_info.cpp

    r44689 r44692  
    984984   PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
    985985   PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
     986   PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
    986987   PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
    987988   PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS);
     
    10311032
    10321033
     1034
     1035
     1036
    10331037   // END GENERATED BLOCK
    10341038
  • trunk/libs/config/test/config_test.cpp

    r44689 r44692  
    1 //  This file was automatically generated on Mon Apr 21 10:10:52 2008
     1//  This file was automatically generated on Mon Apr 21 12:40:41 2008
    22//  by libs/config/tools/generate.cpp
    33//  Copyright John Maddock 2002-4.
     
    198198namespace boost_no_template_partial_specialization = empty_boost;
    199199#endif
     200#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
     201#include "boost_no_part_spec_def_args.ipp"
     202#else
     203namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
     204#endif
    200205#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
    201206#include "boost_no_priv_aggregate.ipp"
     
    10271032      ++error_count;
    10281033   }
     1034   if(0 != boost_no_partial_specialization_implicit_default_args::test())
     1035   {
     1036      std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
     1037      ++error_count;
     1038   }
    10291039   if(0 != boost_no_private_in_aggregate::test())
    10301040   {
Note: See TracChangeset for help on using the changeset viewer.