Compiling a C program with g++ 4.3.1 yields an error about std::FILE
Vincent Lefevre
vincent at vinc17.org
Tue Jun 10 09:27:50 CEST 2008
When I want to compile a C program that includes both <stdio.h>
and <gmp.h> from GMP 4.2.2 (nothing else) with g++ 4.3.1 (no
problem with g++ < 4.2.x and earlier), I get the error:
/home/vlefevre/x86_64/gmp-debug/include/gmp.h:520: error: 'std::FILE' has not been declared
This corresponds to:
#if defined (__cplusplus)
extern "C" {
#ifdef _GMP_H_HAVE_FILE
using std::FILE;
#endif
#endif
I don't know whether this is a bug in GMP or in g++, or a bug in the
GMP documentation, which states:
3.1 Headers and Libraries
=========================
All declarations needed to use GMP are collected in the include file
`gmp.h'. It is designed to work with both C and C++ compilers.
#include <gmp.h>
Note however that prototypes for GMP functions with `FILE *'
parameters are only provided if `<stdio.h>' is included too.
#include <stdio.h>
#include <gmp.h>
--
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
More information about the gmp-bugs
mailing list