我正在尝试使用Boost.Python包装类Cube
,其中包含以下形式的签名:
void insert( const std::pair< int, int>& x){ ... do something .. }
如果我按如下方式将此方法包装起来:
.def("append", &Cube::insert, with_custodian_and_ward<1,2>())
我在python中遇到以下错误:
ArgumentError: Python argument types in
cube.append(cube, list)
did not match C++ signature:
append(Cube {lvalue}, std::__1::pair<unsigned long, unsigned long>)
当我输入时:
cube.append((1,2))
我不确定如何正确地将python类型转换为c ++类型。我似乎找不到合适的例子。
答案 0 :(得分:0)
我认为最简单的方法是将你的python对象显式转换为c ++ std :: pair:
server.get('/user/google', function(req, res, next) {
passport.authenticate('google', {
scope: ['openid email profile']
} ,function(err, user, info){
res.send(user);
})(req,res,next);
})