pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

[BUG]: py::implicitly_convertible<MyEnum, int>(); fails in PYBIND11_EMBEDDED_MODULE

Open lexxmark opened this issue 2 years 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.
  • [X] Consider asking first in the Gitter chat room or in a Discussion.

What version (or hash if on master) of pybind11 are you using?

master

Problem description

py::implicitly_convertible<MyEnum, int>(); fails in PYBIND11_EMBEDDED_MODULE it throws exception "implicitly_convertible: Unable to find type int"

Reproducible example code

#include <pybind11/pybind11.h>
#include <pybind11/embed.h>  // For embedded interpreter

namespace py = pybind11;

enum class MyEnum {
    Value1,
    Value2
    // other values...
};

PYBIND11_EMBEDDED_MODULE(my_embedded_module, m) {
    py::enum_<MyEnum>(m, "MyEnum")
        .value("Value1", MyEnum::Value1)
        .value("Value2", MyEnum::Value2)
        .export_values();

    py::implicitly_convertible<MyEnum, int>();
}

int main() {
    py::scoped_interpreter guard{};  // Start the interpreter

    // Now you can use my_embedded_module in Python embedded calls
    // ...
}

Is this a regression? Put the last known working version here if it is.

Not a regression

lexxmark avatar Dec 01 '23 04:12 lexxmark