我编译一些的boost :: Python代码,我不明白这样的错误:声明...作为函数的数组?
namespace py=boost::python;
void func(py::tuple& t){
/* ... */
vector<shared_ptr<SomeClass>> vf=py::extract<vector<shared_ptr<SomeClass>>>(t[0])();
/* ... */
}
用gcc 4.7,-std=gnu++0x
:
error: declaration of 't' as array of functions
什么是写相同的正确方法? py::extract<>(...)()
是一个有效的表达 -
您可以将*指针数组*指向函数。你不能拥有一组函数。 –
你没有输错'='标志吗? –
如果它有帮助,'SomeType(t [0])();'将声明一个名为't'的数组,其长度为零的函数不带任何参数并返回'SomeType'。然而,我看不出你的代码如何被解析。哦,等等,也许... –