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

_______________________________________________
[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]"

Reply via email to