A game (Linley's Dungeon Crawl's Stone Soup development line <http://crawl-ref.sourceforge.net>, if you must know) did compile and work with the GCC 4.1 series, but now it won't build. The construction it complains about (after fixing what <http://gcc.gnu.org/gcc-4.3/porting_to.html> suggests) is something like:
template <typename T> static void ff(int i, T f) { f(i); } void realf(int i, int j = 1000) { } void g() { ff(117, realf); } void gg() { realf(37); }
Note that the f() function can be called with one argument, and that is what the template use tries to do; g++ complains: $ g++ -O2 -c tst.cc tst.cc: In function ʽvoid ff(int, T) [with T = void (*)(int, int)]ʼ: tst.cc:13: instantiated from here tst.cc:4: error: too few arguments to function I'm no C++ expert at all, so both the "how it used to work" and the current behavior sound reasonable. Can somebody shed some light? Should this be documented as a GCC change, or is it a bug? gcc-c++-4.3.0-0.7.i386 Thanks! -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513
-- fedora-test-list mailing list fedora-test-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-test-list