Самый быстрый способ взаимодействия простой функции C ++ с Python - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть функция C ++, которая принимает std::vector<std::vector<double> > X и выполняет некоторые операции с X и выводит std::vector<std::vector<double> > X_mod.

Я хочу иметь возможность быстро создать интерфейс, такой, чтобы я мог передатьМассив Python в эту функцию C ++, а затем функция C ++ возвращает X_mod в Python.

Я кратко посмотрел на Boost, и он кажется слишком сложным для этой простой цели?

Любые другие предложения о том, как написать быстрый интерфейс для этого?

1 Ответ

0 голосов
/ 12 декабря 2018

Как предлагается в комментариях, Pybind11 можно использовать для написания привязок c ++ для python Документация Pybind , Pybind Github Repo , Пример использования .

Причину, по которой все предлагают Pybind over Boost, можно найти в их файле readme:

Основная проблема с Boost.Python, а также причина создания подобного проекта - это Boost.,Boost - это чрезвычайно большой и сложный набор служебных библиотек, который работает практически со всеми существующими компиляторами C ++.Эта совместимость имеет свою цену: для поддержки самых старых и самых сложных образцов компилятора необходимы тайные приемы и обходные пути.Теперь, когда C ++ 11-совместимые компиляторы широко доступны, эта тяжелая машина стала чрезмерно большой и ненужной зависимостью.

...