pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

[BUG]: Can't bind std::vector<std::pair<int64_t, pybind11::bytes>> such type in pybind11

Open newprogrammer2022 opened this issue 2 years ago • 1 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.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

newprogrammer2022 avatar Nov 13 '23 04:11 newprogrammer2022

Hi, did you manage to make it work? Or is it indeed a bug?

Ali-Bytes avatar Oct 29 '24 02:10 Ali-Bytes