Совместимость строк boost.python для gcc 5.2.0 - PullRequest
0 голосов
/ 21 декабря 2018

Функция, которая принимает std::string ввод, не может быть правильно представлена ​​через boost.python с gcc / 5.2.0;пока gcc 4.8.3 работает нормально.ps Я использую готовый код libboost_python.so.1.63.

C ++

#include <boost/python.hpp>
#include <iostream>
using namespace boost::python;

void func(const std::string & hi)
{
    std::cout<<hi<<std::endl;
}

BOOST_PYTHON_MODULE(example)
{
  def("func", &func);
}

Выполнение Python

>>> from example import *
>>> func("hi")
Boost.Python.ArgumentError: Python argument types in
    example.func(str)
did not match C++ signature:
    func(std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)
...