Я пытаюсь подключить проект go к C ++ lib, используя SWIG. У меня большинство вещей работает, но есть одна функция, которая принимает C ++ std :: string в качестве параметра и присваивает ему значение, и я не смог заставить это работать.
Самая близкая вещь, которую я нашел онлайн, является этим вопросом: Строковые параметры
Это не то же самое, так как требуется const std::string &
и SWIG переводит это в строку go.
Моя функция выглядит примерно так:
bool foo(std::string &result);
SWIG преобразует это в func Foo(result *string) boolean
Это компилирует и строит, но если я передам указатель на строку go, он паникует.
var result string
Foo(&result)
Я был в состоянии заставить foo () возвращать std :: string, который SWIG, кажется, делает работу со строкой go очень хорошо. Тем не менее, я теряю возвращаемое значение в этом случае.
Я использую Голанг 1.7, Swig 3.0.10
Задача ещё не решена.
Других решений пока нет …