Commit 32bb9071 by Boris Staletic Committed by GitHub

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

Why only for pointers? Because C casts are hard to grep for.
parent cc982ac1
...@@ -360,7 +360,7 @@ like so: ...@@ -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
====================== ======================
......
...@@ -176,9 +176,9 @@ pybind11 version. Consider the following example: ...@@ -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
......
...@@ -274,9 +274,9 @@ simply using ``vectorize``). ...@@ -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];
......
...@@ -373,8 +373,8 @@ sequence. ...@@ -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:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment