mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-21 16:09:22 +00:00
Add more PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL; resolves "unused" warning when compiling test_custom_type_casters.cpp
This commit is contained in:
parent
3a95ae1165
commit
24d450bf74
@ -125,11 +125,15 @@ private:
|
||||
"`operator T &()` or `operator const T &()`");
|
||||
|
||||
public:
|
||||
bool load(handle src, bool convert) { return subcaster.load(src, convert); }
|
||||
bool load(handle src, bool convert) {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(type)
|
||||
return subcaster.load(src, convert);
|
||||
}
|
||||
static constexpr auto name = caster_t::name;
|
||||
PYBIND11_TYPE_CASTER_SOURCE_FILE_LINE
|
||||
static handle
|
||||
cast(const std::reference_wrapper<type> &src, return_value_policy policy, handle parent) {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(type)
|
||||
// It is definitely wrong to take ownership of this pointer, so mask that rvp
|
||||
if (policy == return_value_policy::take_ownership
|
||||
|| policy == return_value_policy::automatic) {
|
||||
@ -591,6 +595,7 @@ struct type_caster<CharT, enable_if_t<is_std_char_type<CharT>::value>> {
|
||||
|
||||
public:
|
||||
bool load(handle src, bool convert) {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(StringType)
|
||||
if (!src) {
|
||||
return false;
|
||||
}
|
||||
@ -606,6 +611,7 @@ public:
|
||||
}
|
||||
|
||||
static handle cast(const CharT *src, return_value_policy policy, handle parent) {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(StringType)
|
||||
if (src == nullptr) {
|
||||
return pybind11::none().inc_ref();
|
||||
}
|
||||
@ -613,6 +619,7 @@ public:
|
||||
}
|
||||
|
||||
static handle cast(CharT src, return_value_policy policy, handle parent) {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(StringType)
|
||||
if (std::is_same<char, CharT>::value) {
|
||||
handle s = PyUnicode_DecodeLatin1((const char *) &src, 1, nullptr);
|
||||
if (!s) {
|
||||
@ -786,6 +793,7 @@ protected:
|
||||
return result.release();
|
||||
}
|
||||
|
||||
// TODO: PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL...?
|
||||
Tuple<make_caster<Ts>...> subcasters;
|
||||
};
|
||||
|
||||
@ -1295,6 +1303,7 @@ tuple make_tuple() {
|
||||
|
||||
template <return_value_policy policy = return_value_policy::automatic_reference, typename... Args>
|
||||
tuple make_tuple(Args &&...args_) {
|
||||
// TODO: PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL...?
|
||||
constexpr size_t size = sizeof...(Args);
|
||||
std::array<object, size> args{{reinterpret_steal<object>(
|
||||
detail::make_caster<Args>::cast(std::forward<Args>(args_), policy, nullptr))...}};
|
||||
@ -1525,6 +1534,7 @@ private:
|
||||
return std::forward<Func>(f)(cast_op<Args>(std::move(std::get<Is>(argcasters)))...);
|
||||
}
|
||||
|
||||
// TODO: PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL...?
|
||||
std::tuple<make_caster<Args>...> argcasters;
|
||||
};
|
||||
|
||||
|
@ -213,8 +213,9 @@ protected:
|
||||
|
||||
/* Type casters for the function arguments and return value */
|
||||
using cast_in = argument_loader<Args...>;
|
||||
using cast_out
|
||||
= make_caster<conditional_t<std::is_void<Return>::value, void_type, Return>>;
|
||||
using make_caster_type_out = conditional_t<std::is_void<Return>::value, void_type, Return>;
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(make_caster_type_out);
|
||||
using cast_out = make_caster<make_caster_type_out>;
|
||||
|
||||
static_assert(
|
||||
expected_num_args<Extra...>(
|
||||
@ -1854,6 +1855,7 @@ public:
|
||||
auto *ptr = new capture{std::forward<Func>(func)};
|
||||
install_buffer_funcs(
|
||||
[](PyObject *obj, void *ptr) -> buffer_info * {
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(type);
|
||||
detail::make_caster<type> caster;
|
||||
if (!caster.load(obj, false)) {
|
||||
return nullptr;
|
||||
@ -2715,6 +2717,7 @@ void implicitly_convertible() {
|
||||
return nullptr;
|
||||
}
|
||||
set_flag flag_helper(currently_used);
|
||||
PYBIND11_DETAIL_TYPE_CASTER_ACCESS_TRANSLATION_UNIT_LOCAL(InputType);
|
||||
if (!detail::make_caster<InputType>().load(obj, false)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user