mirror of
https://github.com/boostorg/python.git
synced 2026-01-27 07:02:15 +00:00
fixes for older KCCs
[SVN r13258]
This commit is contained in:
@@ -245,9 +245,12 @@ namespace detail
|
||||
template <class T, class Prev>
|
||||
struct select_held_type
|
||||
: mpl::select_type<
|
||||
!(specifies_bases<T>::value | is_same<T,noncopyable>::value)
|
||||
, T
|
||||
, Prev
|
||||
type_traits::ice_or<
|
||||
type_traits::ice_not<specifies_bases<T>::value>::value
|
||||
, is_same<T,noncopyable>::value
|
||||
>::value
|
||||
, T
|
||||
, Prev
|
||||
>
|
||||
{
|
||||
};
|
||||
|
||||
@@ -22,8 +22,10 @@ namespace detail
|
||||
template <class T, class Held>
|
||||
struct select_value_holder
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, selector = (!is_same<T,Held>::value) | has_back_reference<T>::value);
|
||||
|
||||
typedef typename mpl::select_type<
|
||||
(!is_same<T,Held>::value) | has_back_reference<T>::value
|
||||
selector
|
||||
, value_holder_back_reference<T,Held>
|
||||
, value_holder<T>
|
||||
>::type holder;
|
||||
@@ -35,9 +37,10 @@ namespace detail
|
||||
struct select_pointer_holder
|
||||
{
|
||||
typedef typename python::detail::pointee<Ptr>::type pointee;
|
||||
BOOST_STATIC_CONSTANT(bool, selector = (!is_same<T,pointee>::value) | has_back_reference<T>::value);
|
||||
|
||||
typedef typename mpl::select_type<
|
||||
(!is_same<pointee,T>::value) | has_back_reference<T>::value
|
||||
selector
|
||||
, pointer_holder_back_reference<Ptr,T>
|
||||
, pointer_holder<Ptr,T>
|
||||
>::type holder;
|
||||
|
||||
Reference in New Issue
Block a user