mirror of
https://github.com/pybind/pybind11.git
synced 2026-05-12 17:26:13 +00:00
[smart_holder] Make smart holder type caster of unique_ptr accept automatic_reference (#4775)
* Also accept automatic_reference * Add a test case * Remove the test case * Add another test case * Fix test case
This commit is contained in:
@@ -160,6 +160,12 @@ TEST_SUBMODULE(class_sh_basic, m) {
|
||||
m.def("args_shared_ptr_const", [](std::shared_ptr<atyp const> p) { return p; });
|
||||
m.def("args_unique_ptr", [](std::unique_ptr<atyp> p) { return p; });
|
||||
m.def("args_unique_ptr_const", [](std::unique_ptr<atyp const> p) { return p; });
|
||||
|
||||
// Make sure unique_ptr type caster accept automatic_reference return value policy.
|
||||
m.def(
|
||||
"rtrn_uq_automatic_reference",
|
||||
[]() { return std::unique_ptr<atyp>(new atyp("rtrn_uq_automatic_reference")); },
|
||||
pybind11::return_value_policy::automatic_reference);
|
||||
}
|
||||
|
||||
} // namespace class_sh_basic
|
||||
|
||||
@@ -181,3 +181,7 @@ def test_function_signatures(doc):
|
||||
doc(m.args_unique_ptr_const)
|
||||
== "args_unique_ptr_const(arg0: m.class_sh_basic.atyp) -> m.class_sh_basic.atyp"
|
||||
)
|
||||
|
||||
|
||||
def test_unique_ptr_return_value_policy_automatic_reference():
|
||||
assert m.get_mtxt(m.rtrn_uq_automatic_reference()) == "rtrn_uq_automatic_reference"
|
||||
|
||||
Reference in New Issue
Block a user