我有一个高度多态的c ++函数,可以用近20种不同的类型调用。
为了暴露给python我正在做这样的事情:
#include originalFunctionNamespace.hpp
template
T foo(T x)
{
return orignalFunctionNamespace::foo(x);
}但后来从python调用他们,我必须专注于他们支持的每种类型的功能:
BOOST_PYTHON_MODULE(module_foo)
{
def("foo", foo<:type1>);
def("foo", foo<:type2>);
def("foo", foo<:type3>);
def("foo", foo<:type4>);
def("foo", foo<:type5>);
def("foo", foo<:type6>);
def("foo", foo<:type7>);
...
...
...
def("foo", foo<:typen>);
}这是有效的,但我不能停止认为必须有一个更聪明的方法来做到这一点。由于我必须为许多功能执行此操作,因此事情变得越来越重要。
有什么建议么?