pybind11
pybind11 copied to clipboard
[BUG]: Can't bind std::vector<std::pair<int64_t, pybind11::bytes>> such type in pybind11
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.11.1
Problem description
When working ,I encountered a problem that need to bind std::vector<std::pair<int64_t, pybind11::bytes>> such type in pybind11. but this build failed in VS. report error C4996: 'pybind11::handle::operator ==': Use obj1.is(obj2) instead message : see reference to function template instantiation 'bool std::operator ==<int64_t,pybind11::bytes>(const std::pair<int64_t,pybind11::bytes> &,const std::pair<int64_t,pybind11::bytes> &)' being compiled
Did I do something wrong? I use std c++20 and pybind11 2.11.1. Looking forward to reply. Thanks
Reproducible example code
std::vector<std::pair<int64_t, pybind11::bytes>> _LoadFlow(const std::string& filename)
namespace py = pybind11;
PYBIND11_MAKE_OPAQUE(std::vector<std::pair<int64_t, py::bytes>>);
PYBIND11_MODULE(flow_loader, m) {
py::class_<FlowLoader>(m, "FlowLoader")
.def(py::init<>())
.def("load_flowfile", &FlowLoader::_LoadFlow)
py::bind_vector<std::vector<std::pair<int64_t, py::bytes>>>(m, "VectorPair");
}
Is this a regression? Put the last known working version here if it is.
Not a regression
Hi, did you manage to make it work? Or is it indeed a bug?