Index: macros.hpp =================================================================== --- macros.hpp (revision 39765) +++ macros.hpp (working copy) @@ -21,7 +21,7 @@ #define BOOST_PARAMETER_FUN_TEMPLATE_HEAD0(n) -#ifndef BOOST_NO_SFINAE +#if ! defined(BOOST_NO_SFINAE) && ! BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x591)) # define BOOST_PARAMETER_MATCH_TYPE(n, param) \ BOOST_PP_EXPR_IF(n, typename) param::match \ Index: name.hpp =================================================================== --- name.hpp (revision 39765) +++ name.hpp (working copy) @@ -16,7 +16,8 @@ # include # if !defined(BOOST_NO_SFINAE) \ - && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) # include # include Index: parameters.hpp =================================================================== --- parameters.hpp (revision 39765) +++ parameters.hpp (working copy) @@ -725,7 +725,7 @@ // ::type). -#ifndef BOOST_NO_SFINAE +#if ! defined(BOOST_NO_SFINAE) && ! BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x591)) // If NamedList satisfies the PS0, PS1, ..., this is a // metafunction returning parameters. Otherwise it // has no nested ::type. @@ -775,7 +775,7 @@ #endif > struct match -# ifndef BOOST_NO_SFINAE +# if ! defined(BOOST_NO_SFINAE) && ! BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x591)) : match_base< typename aux::make_arg_list< typename BOOST_PARAMETER_build_arg_list( Index: preprocessor.hpp =================================================================== --- preprocessor.hpp (revision 39765) +++ preprocessor.hpp (working copy) @@ -38,7 +38,7 @@ namespace boost { namespace parameter { namespace aux { -# ifndef BOOST_NO_SFINAE +# if ! defined(BOOST_NO_SFINAE) && ! BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) // Given Match, which is "void x" where x is an argument matching // criterion, extract a corresponding MPL predicate. @@ -353,7 +353,7 @@ template /**/ -# ifndef BOOST_NO_SFINAE +# if ! defined(BOOST_NO_SFINAE) && ! BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) # define BOOST_PARAMETER_FUNCTION_FWD_MATCH_Z(z, name, parameters, n) \ , typename boost::parameter::aux::match< \ parameters, BOOST_PP_ENUM_PARAMS(n, ParameterArgumentType) \