@@ -35,6 +35,15 @@ struct Outer {
35
35
36
36
inline void DisownOuter (std::unique_ptr<Outer>) {}
37
37
38
+ struct WithCharArrayMember {
39
+ WithCharArrayMember () { std::memcpy (char6_member, " Char6" , 6 ); }
40
+ char char6_member[6 ];
41
+ };
42
+
43
+ struct WithConstCharPtrMember {
44
+ const char *const_char_ptr_member = " ConstChar*" ;
45
+ };
46
+
38
47
} // namespace test_class_sh_property
39
48
40
49
PYBIND11_TYPE_CASTER_BASE_HOLDER (test_class_sh_property::ClassicField,
@@ -45,6 +54,9 @@ PYBIND11_TYPE_CASTER_BASE_HOLDER(test_class_sh_property::ClassicOuter,
45
54
PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::Field)
46
55
PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::Outer)
47
56
57
+ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithCharArrayMember)
58
+ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithConstCharPtrMember)
59
+
48
60
TEST_SUBMODULE(class_sh_property, m) {
49
61
using namespace test_class_sh_property ;
50
62
@@ -83,4 +95,12 @@ TEST_SUBMODULE(class_sh_property, m) {
83
95
.def_readwrite (" m_shcp_readwrite" , &Outer::m_shcp);
84
96
85
97
m.def (" DisownOuter" , DisownOuter);
98
+
99
+ py::classh<WithCharArrayMember>(m, " WithCharArrayMember" )
100
+ .def (py::init<>())
101
+ .def_readonly (" char6_member" , &WithCharArrayMember::char6_member);
102
+
103
+ py::classh<WithConstCharPtrMember>(m, " WithConstCharPtrMember" )
104
+ .def (py::init<>())
105
+ .def_readonly (" const_char_ptr_member" , &WithConstCharPtrMember::const_char_ptr_member);
86
106
}
0 commit comments