forked from boostorg/bind
Revert "Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
This reverts commit 7ff6524bd1
.
This commit is contained in:
@@ -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>
|
||||||
|
Reference in New Issue
Block a user