It seems that uClibc-ng is defining fgetc, fputc, feof, and ferror as
macros and not including them in std.
From the C++ 2003 standard:
"Except as noted in clauses 18 through 27, the contents of each header
cname shall be the same as that of the corresponding header name.h, as
specified in ISO/IEC 9899:1990 Programming Languages C (Clause 7), or
ISO/IEC:1990 Programming Languages--C AMENDMENT 1: C Integrity, (Clause
7), as appropriate, as if by inclusion. In the C++ Standard Library,
however, the declarations and definitions (except for names which are
defined as macros in C) are within namespace scope (3.3.5) of the
namespace std."
But these four functions do not seem to be defined as macros in C.
IMO this is a bug in uClibc-ng