<ftream> errors under g++ 3.2.2

Allan Bowhill abowhill at blarg.net
Sun Jun 29 11:13:23 PDT 2003


I recently updated one of my machines to -current to adapt some code to
build under the new version of gcc (3.2.2). However, file IO using <fstream>
gives error messages about implicit typenames being deprecated, and I can't
for the life of me figure out what to do my code to make the compiler happy.
Has anyone encountered this?

Below is a small example illustrating the problem. The source below should
compile fine on a previous version of g++, as in -stable.  However, it will
not compile on -current using g++ 3.3.2. Does anyone know what to do to the
simple source below to get it to compile happily under -current?

(yes, I have checked gnu gcc's mailing list and FAQ/docs. I can't find an
adequate explanation for it. I suspect it has something to do with stricter
conformance to the finalized C++ standard, but since I am still a novice any
explanation by gcc developers would probably have slipped by me)

---------

#include <fstream>

int main()
{
    std::ofstream afile("test.txt");
    afile << "some data";
}

----------

> gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.2 [FreeBSD] 20030205 (release)

---------

>g++ test.cc
In file included from test.cc:1:
/usr/include/g++/fstream:304: warning: `typename std::basic_filebuf<_CharT,
   _Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:304: warning: implicit typename is deprecated,
please
   see the documentation for details
/usr/include/g++/fstream:309: warning: `typename std::basic_filebuf<_CharT,
   _Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:309: warning: implicit typename is deprecated,
please
   see the documentation for details



More information about the freebsd-current mailing list