【发布时间】:2015-07-08 14:05:36
【问题描述】:
我有一个从其参数返回多个值的 C++ 函数。
void Do_Something( double input1, double input2, double input3,
double& output1, double& output2 )
{
...
output1 = something;
output2 = something;
}
我想用 Boost.Python 封装这个函数。我想出了一个使用 lambdas 的解决方案,但它有点乏味,因为我有许多函数,它们的参数中有多个返回值。
BOOST_PYTHON_MODULE( mymodule )
{
using boost::python;
def( "Do_Something", +[]( double input1, double input2, double input3 )
{
double output1;
double output2;
Do_Something( input1, input2, input3, output1, output2 );
return make_tuple( output1, output2 );
});
}
有没有更好的\自动方式来使用 Boost.Python 来完成这个任务?
【问题讨论】:
-
不幸的是,我认为没有更好的选择。在繁琐的过程中,我能想到的唯一能帮助您的是使用
cog为您自动生成函数(考虑到函数遵循相同的“模板”)。