From c35b110a83286e7413d7309eb218eb43b52f7d48 Mon Sep 17 00:00:00 2001 From: Someone Serge Date: Sat, 19 Feb 2022 14:36:12 +0200 Subject: [PATCH 4/4] pybind_utils.h: conflicts with nixpkgs' pybind --- opensfm/src/map/pybind_utils.h | 45 +++------------------------------- 1 file changed, 3 insertions(+), 42 deletions(-) diff --git a/opensfm/src/map/pybind_utils.h b/opensfm/src/map/pybind_utils.h index 817d1a16..3f98a2ab 100644 --- a/opensfm/src/map/pybind_utils.h +++ b/opensfm/src/map/pybind_utils.h @@ -52,38 +52,6 @@ struct sfm_iterator_state { }; PYBIND11_NAMESPACE_END_(detail) -/// Makes an python iterator over the keys (`.first`) of a iterator over pairs -/// from a first and past-the-end InputIterator. -template ()).second), - typename... Extra> -iterator make_value_iterator(Iterator first, Sentinel last, Extra &&... extra) { - typedef detail::sfm_iterator_state - state; - - if (!detail::get_type_info(typeid(state), false)) { - class_(handle(), "iterator", pybind11::module_local()) - .def("__iter__", [](state &s) -> state & { return s; }) - .def("__next__", - [](state &s) -> KeyType { - if (!s.first_or_done) - ++s.it; - else - s.first_or_done = false; - if (s.it == s.end) { - s.first_or_done = true; - throw stop_iteration(); - } - return (*s.it).second; - }, - std::forward(extra)..., Policy); - } - - return cast(state{first, last, true}); -} - template ()).second)), @@ -148,12 +116,13 @@ iterator make_ref_iterator(Iterator first, Sentinel last, Extra &&... extra) { } /// Makes a python iterator from a first and past-the-end C++ InputIterator. -template ()), typename... Extra> iterator make_ptr_iterator(Iterator first, Sentinel last, Extra &&... extra) { - typedef detail::iterator_state state; + typedef detail::iterator_state state; if (!detail::get_type_info(typeid(state), false)) { class_(handle(), "iterator", pybind11::module_local()) @@ -176,14 +145,6 @@ iterator make_ptr_iterator(Iterator first, Sentinel last, Extra &&... extra) { return cast(state{first, last, true}); } -/// Makes an iterator over the keys (`.first`) of a stl map-like container -/// supporting `std::begin()`/`std::end()` -template -iterator make_value_iterator(Type &value, Extra &&... extra) { - return make_value_iterator(std::begin(value), std::end(value), - extra...); -} template iterator make_unique_ptr_value_iterator(Type &value, Extra &&... extra) { -- 2.33.1