Skip to content

Commit f530adb

Browse files
committed
Does this fix it?
1 parent b303194 commit f530adb

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

include/pybind11/pybind11.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,23 @@ auto method_adaptor(Return (Class::*pmf)(Args...) const) -> Return (Derived::*)(
19471947
return pmf;
19481948
}
19491949

1950+
template <typename Derived, typename Return, typename Class, typename... Args>
1951+
auto method_adaptor(Return (Class::*pmf)(Args...) &) -> Return (Derived::*)(Args...) & {
1952+
static_assert(
1953+
detail::is_accessible_base_of<Class, Derived>::value,
1954+
"Cannot bind an inaccessible base class method; use a lambda definition instead");
1955+
return pmf;
1956+
}
1957+
1958+
template <typename Derived, typename Return, typename Class, typename... Args>
1959+
auto method_adaptor(Return (Class::*pmf)(Args...) const &)
1960+
-> Return (Derived::*)(Args...) const & {
1961+
static_assert(
1962+
detail::is_accessible_base_of<Class, Derived>::value,
1963+
"Cannot bind an inaccessible base class method; use a lambda definition instead");
1964+
return pmf;
1965+
}
1966+
19501967
#ifdef __cpp_noexcept_function_type
19511968
template <typename Derived, typename Return, typename Class, typename... Args>
19521969
auto method_adaptor(Return (Class::*pmf)(Args...) noexcept)

0 commit comments

Comments
 (0)