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



--- Comment #2 from ph dunski <koala01 at free dot fr> 2012-12-21 19:17:05 UTC 
---

(In reply to comment #1)

> (In reply to comment #0)

> > Am i wrong ?

> 

> Yes.  The foo(std::string const&, Args...) overload is not in scope within

> foo(int, Args...) so the call resolves to the foo(Args...) overload.



If you say so ...



But in this case, how is it possible to have a diffrent behavior simply by

switching foo (const std :: string &, Args ..) and foo (int, args ...)

implemented?



If you just try to compile my first test code, you will see that the execution

stops before writing the string, 3 more.



If you go foo (std :: string const &, Args ..) and foo (int, args ...)

implemented in the code, you will see that the execution stops after writing

the string, with argument 2 more.



I've always heard that the implementation order should not have an impact on

the final result.



Am i rong again?

Reply via email to