the gmp library is somehow problematic with regard to this. The gmp.h header
is using the __cplusplus define at will not just to specify the linkage class of
the symbols provided there (extern "C"), but to define the C++ specific interface
as well. Like for example:
#if defined (__cplusplus) #include <iosfwd> /* for istream, ostream */ #endif
This happens even if one does tell gmp to not provide the C++ wrappers at all.
Disgusting isn't it?