C type declarations are quite sane, until you need function pointers. Then things get really crazy.
Consider this type declaration in Go:
func(string) []func(int)[]*float64
This took me 5 seconds to write. The C/C++ counterpart would probably take an hour to get right :(