Avoid C-style casts for pointers in docs (#2487)

Why only for pointers? Because C casts are hard to grep for.
This commit is contained in:
Boris Staletic 2020-09-14 20:07:29 +02:00 committed by GitHub
parent cc982ac1cd
commit 32bb9071aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 8 deletions

View File

@ -360,7 +360,7 @@ like so:
.. code-block:: cpp .. code-block:: cpp
py::class_<MyClass>("MyClass") py::class_<MyClass>("MyClass")
.def("myFunction", py::arg("arg") = (SomeType *) nullptr); .def("myFunction", py::arg("arg") = static_cast<SomeType *>(nullptr));
Keyword-only arguments Keyword-only arguments
====================== ======================

View File

@ -176,9 +176,9 @@ pybind11 version. Consider the following example:
.. code-block:: cpp .. code-block:: cpp
auto data = (MyData *) py::get_shared_data("mydata"); auto data = reinterpret_cast<MyData *>(py::get_shared_data("mydata"));
if (!data) if (!data)
data = (MyData *) py::set_shared_data("mydata", new MyData(42)); data = static_cast<MyData *>(py::set_shared_data("mydata", new MyData(42)));
If the above snippet was used in several separately compiled extension modules, If the above snippet was used in several separately compiled extension modules,
the first one to be imported would create a ``MyData`` instance and associate the first one to be imported would create a ``MyData`` instance and associate

View File

@ -274,9 +274,9 @@ simply using ``vectorize``).
py::buffer_info buf3 = result.request(); py::buffer_info buf3 = result.request();
double *ptr1 = (double *) buf1.ptr, double *ptr1 = static_cast<double *>(buf1.ptr);
*ptr2 = (double *) buf2.ptr, double *ptr2 = static_cast<double *>(buf2.ptr);
*ptr3 = (double *) buf3.ptr; double *ptr3 = static_cast<double *>(buf3.ptr);
for (size_t idx = 0; idx < buf1.shape[0]; idx++) for (size_t idx = 0; idx < buf1.shape[0]; idx++)
ptr3[idx] = ptr1[idx] + ptr2[idx]; ptr3[idx] = ptr1[idx] + ptr2[idx];

View File

@ -373,8 +373,8 @@ sequence.
py::class_<Pet>(m, "Pet") py::class_<Pet>(m, "Pet")
.def(py::init<const std::string &, int>()) .def(py::init<const std::string &, int>())
.def("set", (void (Pet::*)(int)) &Pet::set, "Set the pet's age") .def("set", static_cast<void (Pet::*)(int)>(&Pet::set), "Set the pet's age")
.def("set", (void (Pet::*)(const std::string &)) &Pet::set, "Set the pet's name"); .def("set", static_cast<void (Pet::*)(const std::string &)>(&Pet::set), "Set the pet's name");
The overload signatures are also visible in the method's docstring: The overload signatures are also visible in the method's docstring: