mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-12 11:47:50 +00:00
Using __VA_ARGS__ in PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS.
This commit is contained in:
parent
75f7eca26e
commit
1dcf115b22
@ -1589,19 +1589,19 @@ struct smart_holder_type_caster<std::unique_ptr<T const, D>>
|
|||||||
|
|
||||||
#ifndef PYBIND11_USE_SMART_HOLDER_AS_DEFAULT
|
#ifndef PYBIND11_USE_SMART_HOLDER_AS_DEFAULT
|
||||||
|
|
||||||
#define PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(T, H)
|
#define PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(T, ...)
|
||||||
|
|
||||||
template <typename T> class type_caster_for_class_ : public type_caster_base<T> {};
|
template <typename T> class type_caster_for_class_ : public type_caster_base<T> {};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(T, H) \
|
#define PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(T, ...) \
|
||||||
namespace pybind11 { \
|
namespace pybind11 { \
|
||||||
namespace detail { \
|
namespace detail { \
|
||||||
template <> \
|
template <> \
|
||||||
class type_caster<T> : public type_caster_base<T> {}; \
|
class type_caster<T> : public type_caster_base<T> {}; \
|
||||||
template <> \
|
template <> \
|
||||||
class type_caster<H> : public type_caster_holder<T, H> {}; \
|
class type_caster<__VA_ARGS__> : public type_caster_holder<T, __VA_ARGS__> {}; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,10 +275,8 @@ PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(Object, ref<Object>)
|
|||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject1, ref<MyObject1>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject1, ref<MyObject1>)
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject2, std::shared_ptr<MyObject2>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject2, std::shared_ptr<MyObject2>)
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject3, std::shared_ptr<MyObject3>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject3, std::shared_ptr<MyObject3>)
|
||||||
using unique_ptr_myobject4_nodelete = std::unique_ptr<MyObject4, py::nodelete>;
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4, std::unique_ptr<MyObject4, py::nodelete>)
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4, unique_ptr_myobject4_nodelete)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4a, std::unique_ptr<MyObject4a, py::nodelete>)
|
||||||
using unique_ptr_myobject4a_nodelete = std::unique_ptr<MyObject4a, py::nodelete>;
|
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4a, unique_ptr_myobject4a_nodelete)
|
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4b, std::unique_ptr<MyObject4b>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject4b, std::unique_ptr<MyObject4b>)
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject5, huge_unique_ptr<MyObject5>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(MyObject5, huge_unique_ptr<MyObject5>)
|
||||||
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(SharedPtrRef::A, std::shared_ptr<SharedPtrRef::A>)
|
PYBIND11_SMART_POINTER_HOLDER_TYPE_CASTERS(SharedPtrRef::A, std::shared_ptr<SharedPtrRef::A>)
|
||||||
|
Loading…
Reference in New Issue
Block a user