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
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"
-- Patrick L. Hartling | Research Assistant, VRAC [EMAIL PROTECTED] | 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/
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"