@@ -35,6 +35,15 @@ struct Outer {
3535
3636inline void DisownOuter (std::unique_ptr<Outer>) {}
3737
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+
3847} // namespace test_class_sh_property
3948
4049PYBIND11_TYPE_CASTER_BASE_HOLDER (test_class_sh_property::ClassicField,
@@ -45,6 +54,9 @@ PYBIND11_TYPE_CASTER_BASE_HOLDER(test_class_sh_property::ClassicOuter,
4554PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::Field)
4655PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::Outer)
4756
57+ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithCharArrayMember)
58+ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithConstCharPtrMember)
59+
4860TEST_SUBMODULE(class_sh_property, m) {
4961 using namespace test_class_sh_property ;
5062
@@ -83,4 +95,12 @@ TEST_SUBMODULE(class_sh_property, m) {
8395 .def_readwrite (" m_shcp_readwrite" , &Outer::m_shcp);
8496
8597 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);
86106}
0 commit comments