Re: <ftream> errors under g++ 3.2.2

From: Patrick Hartling <patrick_at_137.org>
Date: Sun, 29 Jun 2003 13:31:39 -0500
Allan Bowhill wrote:
> 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?

I do a lot of C++ development on -current, and I have been seeing these 
exact warnings.  The problem is in the fstream header, however, so there 
is nothing you can do to your code to prevent the warnings.  You could 
modify /usr/include/g++/fstream to silence the warnings, but it would 
get overwritten if you upgrade your system.

> 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?

 From your output, I don't see compile failures, I see warnings.  Do you 
have -Werror turned on somewhere that wouldn't show up during normal 
usage--like some environment variable or something?  I was able to 
compile and run your code without issue here.

Honestly, I am surprised that a GCC header would have an implicit 
typename since the compiler clearly complains loudly about them.  At any 
rate, I think the update to GCC 3.3 in -current is going to happen quite 
soon, and presumably, the updated GCC C++ headers will have warnings 
such as these fully eliminated.

  -Patrick

> (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
> 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 


-- 
Patrick L. Hartling                     | Research Assistant, VRAC
patrick_at_137.org                         | 2274 Howe Hall Room 2624
PGP: http://www.137.org/patrick/pgp.txt | T: +1.515.294.4916
http://www.137.org/patrick/             | http://www.vrac.iastate.edu/
Received on Sun Jun 29 2003 - 09:31:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:13 UTC