Handling C++ exceptions in Go
Cgo is a mechanism that allows Go packages call C code. The Go compiler enables cgo for every .go source file that imports a special pseudo package "C". The text in the comment before the import "C" line is treated as a C code. You can include headers, define functions, types and variables - everything a normal C code can do:
package main
/*
#include <stdio.h>
void foo(int x) {
printf("x: %d\n", x);
}
*/
import "C"
func main() {
C.foo(C.int(123)) // x: 123
}