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



--- Comment #10 from erik.thi...@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...

Reply via email to