Python: расширение C ++, возвращающее несколько значений

Я пишу расширение C ++ для скрипта Python и хочу вернуть несколько значений, как мы можем сделать в функции Python.

Простой пример в Python:

def test():
return 0,0

кортеж похоже самый близкий ответ

#include <tuple>

std::tuple<int,int> test(void){
return std::make_tuple(0,0);
}

Но когда я компилирую это, он жалуется, что

TypeError: No to_python (by-value) converter found for C++ type: std::tuple<int, int>

Кто-нибудь знает, могу ли я вернуть несколько значений с помощью C ++?

РЕДАКТИРОВАТЬ:

Это мой файл setup.py.

#!/usr/bin/env python

from distutils.core import setup
from distutils.extension import Extension

setup(name="PackageName",
ext_modules=[
Extension("foo", ["foo.cpp"],
libraries = ["boost_python"],
extra_compile_args = ["-std=c++11"]
)
])

1

Решение

Кажется, вы используете boost-python. Затем следует использовать boost :: python :: tuple, а не std :: tuple. Смотрите примеры на эта страница.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]