pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

[BUG]: XCode compilation error in pybind11 v12.2.0 (pybind11.h, line 1145)

Open josephsieh opened this issue 1 year ago • 0 comments

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

josephsieh avatar Apr 30 '24 05:04 josephsieh