tree 32c7b39fda4162b294f243bccdb82948d594e853
parent dc37cba85d1b61368b41e1df346eadef86897cd4
author Ralf W. Grosse-Kunstleve <rwgkio@gmail.com> 1740248540 -0800
committer GitHub <noreply@github.com> 1740248540 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJnuhXcCRC1aQ7uu5UhlAAArrwQAEaKz8ljzjVjIL/3+SYIW8VA
 SvaO/Cjh5B4h7kNR1YwvV1DBHANgO1aWFUBpPoVHtA699HjaWAlqvGSvOM5PDeD3
 JxvN/rY0QlZDhOg60jADM7w7niALm5udr9wwFrQiYuOc+yb8CxT4t9oL2Mrja/33
 bUFYId8x2o57IKfIvP6n1101Q4z13IWD+IfMUBuIXaviitTkefTt/d0rtYHRZVKj
 fjkE5VqUnolVe1M5r2JNg4wGPINU+RX8bGVjPkmrxtn2SFyvVaAYM8p8DceMTst8
 u+DsTPnzPQJdZDkH+2udvZaK2C+G0vJCxSTdxc3SSA095j4hnXeM/bghyBE1YE6W
 cLhkur+VFKmHbd2yUCTzik6KNQ9GEXOwHvKxCeQNwsBPbDAaibkj4ftLaRqSDPWI
 dCTtGjEbjHsYIHF3dObzCFmOsDj9Ac4NB8gQixMxQBDue6ncOY+tCHYMXP068HCq
 6/Lu9v2Z2dLy10hOdGJW1h2gjImAd3VqHDRl7wHUHh5yKhIj9/kk5z6e2O7V1NsV
 jXON7mzXXK9TgTZvcLV2RLDF+XpL3hFMhbQqrwNguThg5gyObpk9XBbZ7Xcc2kQN
 e0/ZtXHcjT249POfdlKDdx3eaTlA+rXt32S7d9cufFvTpr6je+4Xsgxf4rI0RVtB
 8xO6Ns2bZfsp1GWPIFdU
 =Pv5f
 -----END PGP SIGNATURE-----
 

[smart_holder] Simplification: Enable smart_holder functionality unconditionally. (#5531)

* git merge --squash purge_internals_versions_4_5

* Remove PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT, set PYBIND11_INTERNALS_VERSION 7

* Remove all uses of PYBIND11_SMART_HOLDER_ENABLED under include/pybind11

* Remove obsolete PYBIND11_ACTUALLY_USING_SMART_HOLDER_AS_DEFAULT macro.

* Remove PYBIND11_SMART_HOLDER_ENABLED in ubench/holder_comparison.cpp

* Remove all uses of PYBIND11_SMART_HOLDER_ENABLED under tests/

* Remove `#define PYBIND11_SMART_HOLDER_ENABLED`

* Remove all uses of PYBIND11_SMART_HOLDER_TYPE_CASTERS under tests/

* Remove all uses of PYBIND11_TYPE_CASTER_BASE_HOLDER under tests/

* Add missing `#include <cstdint>`

Example error message (🐍 3.11 • ubuntu-latest • x64, GNU 13.3.0):

```
include/pybind11/detail/value_and_holder.h:56:52: error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’?
   56 |             inst->nonsimple.status[index] &= (std::uint8_t) ~instance::status_holder_constructed;
      |                                                    ^~~~~~~
```

* Change PYBIND11_INTERNALS_VERSION to 106: It will be changed to 7 in a follow-on PR that actually changes the internals.