[Bug c++/56760] namespaces, templates and forwarding declarations.

erik.thiele@thiele-hydraulik.de gcc-bugzilla@gcc.gnu.org
Thu Mar 28 16:50:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56760

--- Comment #10 from erik.thiele@thiele-hydraulik.de 2013-03-28 16:50:06 UTC ---
But the function actually IS defined, because the call func(foo,b) works. Yes
it is not defined early enough maybe. But the linker is run after the compiler.
How can the linker differentiate about when something is implemented? doesn't
it just look for the symbol and if it is there, then it is there?

as mentioned in my post 2013-03-28 08:27:34 UTC the signature of the missing
implementation is exactly the same in the error message if you leave out the
template definition than if you do the line that you call invalid C++.

So maybe the linker output should show more detail. The linker sais that an
implementation is missing, which is NOT missing. so maybe there is some
additional clue that the linker could display here? is there some hidden
additional information in the function signature somehow?


the section about name lookup changes talks about the -fpermissive option which
should reactivate the old behaviour. but that does not work.


anyway... what could be a workaround? as mentioned earlier I cannot do a
forward declaration.

This really puzzles me...



More information about the Gcc-bugs mailing list