Skip to content

Commit 0cd5e54

Browse files
committed
Fix ParmParse: Enum
pybind11 cannot use `overload_cast` anymore if one of the overloads has an enable_if template and the others are not templated. Express as lambdas.
1 parent 1121fb1 commit 0cd5e54

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/Base/ParmParse.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,15 @@ void init_ParmParse(py::module &m)
3535

3636
.def_static("addfile", &ParmParse::addfile)
3737

38-
.def("add", py::overload_cast<std::string_view, bool const>(&ParmParse::add))
39-
.def("add", py::overload_cast<std::string_view, int const>(&ParmParse::add))
40-
.def("add", py::overload_cast<std::string_view, long const>(&ParmParse::add))
41-
.def("add", py::overload_cast<std::string_view, long long const>(&ParmParse::add))
42-
.def("add", py::overload_cast<std::string_view, float const>(&ParmParse::add))
43-
.def("add", py::overload_cast<std::string_view, double const>(&ParmParse::add))
44-
.def("add", py::overload_cast<std::string_view, std::string const &>(&ParmParse::add))
45-
.def("add", py::overload_cast<std::string_view, amrex::IntVect const &>(&ParmParse::add))
46-
.def("add", py::overload_cast<std::string_view, amrex::Box const &>(&ParmParse::add))
47-
38+
.def("add", [](ParmParse &pp, std::string_view name, bool val) { pp.add(name, val); })
39+
.def("add", [](ParmParse &pp, std::string_view name, int val) { pp.add(name, val); })
40+
.def("add", [](ParmParse &pp, std::string_view name, long val) { pp.add(name, val); })
41+
.def("add", [](ParmParse &pp, std::string_view name, long long val) { pp.add(name, val); })
42+
.def("add", [](ParmParse &pp, std::string_view name, float val) { pp.add(name, val); })
43+
.def("add", [](ParmParse &pp, std::string_view name, double val) { pp.add(name, val); })
44+
.def("add", [](ParmParse &pp, std::string_view name, std::string const &val) { pp.add(name, val); })
45+
.def("add", [](ParmParse &pp, std::string_view name, amrex::IntVect const &val) { pp.add(name, val); })
46+
.def("add", [](ParmParse &pp, std::string_view name, amrex::Box const &val) { pp.add(name, val); })
4847
.def("addarr", py::overload_cast<std::string_view, std::vector<int> const &>(&ParmParse::addarr))
4948
.def("addarr", py::overload_cast<std::string_view, std::vector<long> const &>(&ParmParse::addarr))
5049
.def("addarr", py::overload_cast<std::string_view, std::vector<long long> const &>(&ParmParse::addarr))

0 commit comments

Comments
 (0)