pybind11
pybind11 copied to clipboard
[BUG]: XCode compilation error in pybind11 v12.2.0 (pybind11.h, line 1145)
Required prerequisites
- [X] Make sure you've read the documentation. Your issue may be addressed there.
- [X] Search the issue tracker and Discussions to verify that this hasn't already been reported. +1 or comment there if it has.
- [ ] Consider asking first in the Gitter chat room or in a Discussion.
What version (or hash if on master) of pybind11 are you using?
2.12.0
Problem description
Environment:
Xcode Version: 15.3 Compiler: Apple clang (default) C++ Language Dialect: C++17 (std=c++17) Description:
A compilation error occurs when using pybind11 version 12.2.0. The error originates from line 1145 of pybind11.h. There is no issue in 2.11.1 and before.
Error Message:
Loop variable 'kwarg' binds to a temporary value produced by a range of type 'pybind11::dict'
Code Snippet:
static PyObject *dispatcher(PyObject *self, PyObject *args_in, PyObject *kwargs_in) {
...
for (const auto &kwarg : kwargs) { // Compiler error (line 1145 of pybind11.h)
if (first) {
first = false;
} else {
msg += ", ";
}
msg += pybind11::str("{}=").format(kwarg.first);
try {
msg += pybind11::repr(kwarg.second);
} catch (const error_already_set &) {
msg += "<repr raised Error>";
}
}
...
}
Reproducible example code
No response
Is this a regression? Put the last known working version here if it is.
2.11.1