Skip to content

Commit 6aeae9c

Browse files
Fix py::trampoline_self_life_support visibility in docs (#5766)
C++ classes default inheritance rule is private. I believe py::trampoline_self_life_support must be public to work correctly.
1 parent 316273e commit 6aeae9c

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

docs/advanced/classes.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ helper class that is defined as follows:
6464

6565
.. code-block:: cpp
6666
67-
class PyAnimal : public Animal, py::trampoline_self_life_support {
67+
class PyAnimal : public Animal, public py::trampoline_self_life_support {
6868
public:
6969
/* Inherit the constructors */
7070
using Animal::Animal;
@@ -262,13 +262,13 @@ override the ``name()`` method):
262262

263263
.. code-block:: cpp
264264
265-
class PyAnimal : public Animal, py::trampoline_self_life_support {
265+
class PyAnimal : public Animal, public py::trampoline_self_life_support {
266266
public:
267267
using Animal::Animal; // Inherit constructors
268268
std::string go(int n_times) override { PYBIND11_OVERRIDE_PURE(std::string, Animal, go, n_times); }
269269
std::string name() override { PYBIND11_OVERRIDE(std::string, Animal, name, ); }
270270
};
271-
class PyDog : public Dog, py::trampoline_self_life_support {
271+
class PyDog : public Dog, public py::trampoline_self_life_support {
272272
public:
273273
using Dog::Dog; // Inherit constructors
274274
std::string go(int n_times) override { PYBIND11_OVERRIDE(std::string, Dog, go, n_times); }
@@ -290,7 +290,7 @@ declare or override any virtual methods itself:
290290
.. code-block:: cpp
291291
292292
class Husky : public Dog {};
293-
class PyHusky : public Husky, py::trampoline_self_life_support {
293+
class PyHusky : public Husky, public py::trampoline_self_life_support {
294294
public:
295295
using Husky::Husky; // Inherit constructors
296296
std::string go(int n_times) override { PYBIND11_OVERRIDE_PURE(std::string, Husky, go, n_times); }
@@ -306,14 +306,14 @@ follows:
306306
.. code-block:: cpp
307307
308308
template <class AnimalBase = Animal>
309-
class PyAnimal : public AnimalBase, py::trampoline_self_life_support {
309+
class PyAnimal : public AnimalBase, public py::trampoline_self_life_support {
310310
public:
311311
using AnimalBase::AnimalBase; // Inherit constructors
312312
std::string go(int n_times) override { PYBIND11_OVERRIDE_PURE(std::string, AnimalBase, go, n_times); }
313313
std::string name() override { PYBIND11_OVERRIDE(std::string, AnimalBase, name, ); }
314314
};
315315
template <class DogBase = Dog>
316-
class PyDog : public PyAnimal<DogBase>, py::trampoline_self_life_support {
316+
class PyDog : public PyAnimal<DogBase>, public py::trampoline_self_life_support {
317317
public:
318318
using PyAnimal<DogBase>::PyAnimal; // Inherit constructors
319319
// Override PyAnimal's pure virtual go() with a non-pure one:
@@ -564,7 +564,7 @@ an alias:
564564
// ...
565565
virtual ~Example() = default;
566566
};
567-
class PyExample : public Example, py::trampoline_self_life_support {
567+
class PyExample : public Example, public py::trampoline_self_life_support {
568568
public:
569569
using Example::Example;
570570
PyExample(Example &&base) : Example(std::move(base)) {}
@@ -1170,7 +1170,7 @@ described trampoline:
11701170
virtual int foo() const { return 42; }
11711171
};
11721172
1173-
class Trampoline : public A, py::trampoline_self_life_support {
1173+
class Trampoline : public A, public py::trampoline_self_life_support {
11741174
public:
11751175
int foo() const override { PYBIND11_OVERRIDE(int, A, foo, ); }
11761176
};

docs/advanced/misc.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ could be realized as follows (important changes highlighted):
8080
.. code-block:: cpp
8181
:emphasize-lines: 8,30,31
8282
83-
class PyAnimal : public Animal, py::trampoline_self_life_support {
83+
class PyAnimal : public Animal, public py::trampoline_self_life_support {
8484
public:
8585
/* Inherit the constructors */
8686
using Animal::Animal;

0 commit comments

Comments
 (0)