目前在C ++中实现golang包有哪些工具?我想要这个工作:
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
}
}