go — Как написать пакет golang с использованием C ++?

Какие инструменты существуют сегодня для реализации пакета golang в C ++? Я хочу, чтобы это работало:

import (
"fmt""zuzu" // my package
}

v := zuzu.Func(1,2,3)

и zuzu.Func() должен быть написан на C ++ следующим образом:

// C++ code:
int Func(int a, int b, int c) {
return a + b + c;
}

Должен ли я использовать cgo ( https://golang.org/cmd/cgo/ ) для достижения этой цели? Как я понимаю, я должен создать файл .go, который предоставляет объявления Func () и использует cgo Синтаксис для ссылки на мой .cpp / .h файлы с фактической реализацией?

Трудные вопросы

Может ли функция C ++ создавать и возвращать нетривиальные переменные Go, например map[int]map[int]int?

Может ли функция C ++ возвращать значение типа переменной? Псевдо-CPP-код:

// C++ code
// This function may return map[float32] or int.
MIXED_RETURN_TYPE cpp_func(int x) {
if ( 1 == x  ) {
return MAP_OF_FLOATS; // go type: map[float32]
} else {
return 2;             // go type: int
}
}

0

Решение

Задача ещё не решена.

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

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

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