mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 15:12:01 +00:00
cast(): use cast_op_type mechanism
This commit is contained in:
parent
65f0c2aeb7
commit
aadc2f3d8c
@ -764,10 +764,11 @@ public:
|
|||||||
NAMESPACE_END(detail)
|
NAMESPACE_END(detail)
|
||||||
|
|
||||||
template <typename T> inline T cast(handle handle) {
|
template <typename T> inline T cast(handle handle) {
|
||||||
detail::type_caster<typename detail::intrinsic_type<T>::type> conv;
|
typedef detail::type_caster<typename detail::intrinsic_type<T>::type> type_caster;
|
||||||
|
type_caster conv;
|
||||||
if (!conv.load(handle, true))
|
if (!conv.load(handle, true))
|
||||||
throw cast_error("Unable to cast Python object to C++ type");
|
throw cast_error("Unable to cast Python object to C++ type");
|
||||||
return (T) conv;
|
return conv.operator typename type_caster::template cast_op_type<T>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> inline object cast(const T &value, return_value_policy policy = return_value_policy::automatic_reference, handle parent = handle()) {
|
template <typename T> inline object cast(const T &value, return_value_policy policy = return_value_policy::automatic_reference, handle parent = handle()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user