1
0
forked from boostorg/bind

Revert "Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"

This reverts commit 7ff6524bd1.
This commit is contained in:
Peter Dimov
2013-12-07 18:50:56 +02:00
parent 96fd1e7036
commit aa8a94273d

View File

@@ -980,6 +980,8 @@ namespace _bi
// add_value // add_value
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) ) #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )
template<class T> struct add_value template<class T> struct add_value
@@ -1031,6 +1033,45 @@ template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
typedef bind_t<R, F, L> type; typedef bind_t<R, F, L> type;
}; };
#else
template<int I> struct _avt_0;
template<> struct _avt_0<1>
{
template<class T> struct inner
{
typedef T type;
};
};
template<> struct _avt_0<2>
{
template<class T> struct inner
{
typedef value<T> type;
};
};
typedef char (&_avt_r1) [1];
typedef char (&_avt_r2) [2];
template<class T> _avt_r1 _avt_f(value<T>);
template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
template<int I> _avt_r1 _avt_f(arg<I>);
template<int I> _avt_r1 _avt_f(arg<I> (*) ());
template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
_avt_r2 _avt_f(...);
template<class T> struct add_value
{
static T t();
typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
};
#endif
// list_av_N // list_av_N
template<class A1> struct list_av_1 template<class A1> struct list_av_1
@@ -1575,7 +1616,7 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
// data member pointers // data member pointers
#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|| ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) ) || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) )
template<class R, class T, class A1> template<class R, class T, class A1>