boost :: python :: list получил ошибку сегмента значения - PullRequest
0 голосов
/ 16 сентября 2018

Я написал тестовый код boost::python::list, но получил segment fault

#include <iostream>
#include <boost/python.hpp>
#include <boost/python/list.hpp>
#include <boost/python/extract.hpp>

using namespace std;
using namespace boost;

void test(const boost::python::list & action, int i);

void test(const boost::python::list & action, int i) {
    cout << "step into here" << endl;
    double a = boost::python::extract<double>(action[i]);
    cout << a << endl;
}

int main() {
    cout << "Hello World!" << endl;
    boost::python::list action;
    for (int i = 0; i < 10; i++) action.append(1.0);
//    int n = boost::python::extract<double>(action.attr("__len__")());
//    cout << n << endl;
    test(action, 0);
    return 0;
}

Кажется, что ошибка сегмента произошла в

double a = boost::python::extract<double>(action[i]);

Но список имеетдлина 10, и я хочу получить значение с индексом 0. Как я могу это исправить?

...