Я недавно задал этот вопрос https://softwareengineering.stackexchange.com/questions/129076/go-instead-of-c-c-with-cgo и получил очень интересную информацию. Однако в моем вопросе есть ошибка: я предположил, что cgo может также использоваться для доступа к коду c ++, но это невозможно. Вместо этого вам нужно использовать SWIG.
Go faq говорит: «Программа cgo предоставляет механизм для« интерфейса внешних функций », позволяющий безопасно вызывать библиотеки C из кода Go. SWIG расширяет эту возможность для библиотек C ++».
мой вопрос:
Можно ли получить доступ к высокоуровневым средам C ++, таким как QT, с помощью SWIG + Go и получить продуктивность? Я хотел бы использовать Go в качестве «языка сценариев» для использования библиотек c ++.
У вас есть какой-нибудь опыт работы с глотком? Есть ли подводные камни, о которых я должен знать?
Обновление / Ответ : я тоже об этом спрашивал через IRC и думаю, что вопрос решен:
SWIG - довольно чистый способ сопряжения кода C ++ с другими языками. К сожалению, сопоставление типов с ++ с чем-то вроде go может быть очень сложным, и в большинстве случаев вы должны сами определять отображение. Это означает, что SWIG - это хороший способ использовать существующую кодовую базу для повторного использования уже написанных алгоритмов. Однако отображение библиотеки типа Qt to go займет у вас много времени. Имейте в виду, что это возможно, но вы не хотите этого делать.
Те из вас, кто пришел сюда для программирования на графическом интерфейсе с помощью go, могут захотеть попробовать go-gtk или версию wxWidgets go.