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