mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-23 00:49:36 +00:00
Merge 2b08a25e9c
into b7c33009ac
This commit is contained in:
commit
6dc50ae45b
@ -686,6 +686,12 @@ struct process_attributes {
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct is_keep_alive : std::false_type {};
|
||||
|
||||
template <size_t Nurse, size_t Patient>
|
||||
struct is_keep_alive<keep_alive<Nurse, Patient>> : std::true_type {};
|
||||
|
||||
template <typename T>
|
||||
using is_call_guard = is_instantiation<call_guard, T>;
|
||||
|
||||
|
@ -1912,6 +1912,12 @@ public:
|
||||
const Extra &...extra) {
|
||||
static_assert(0 == detail::constexpr_sum(std::is_base_of<arg, Extra>::value...),
|
||||
"Argument annotations are not allowed for properties");
|
||||
static_assert(0 == detail::constexpr_sum(detail::is_call_guard<Extra>::value...),
|
||||
"def_property family does not currently support call_guard. Use a "
|
||||
"py::cpp_function instead.");
|
||||
static_assert(0 == detail::constexpr_sum(detail::is_keep_alive<Extra>::value...),
|
||||
"def_property family does not currently support keep_alive. Use a "
|
||||
"py::cpp_function instead.");
|
||||
auto rec_fget = get_function_record(fget), rec_fset = get_function_record(fset);
|
||||
auto *rec_active = rec_fget;
|
||||
if (rec_fget) {
|
||||
|
Loading…
Reference in New Issue
Block a user