[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #17 from Kristian Spangsege 2013-02-23 01:35:02 UTC --- Dude, you are insulting my ego! :-) Anyway, thanks for pointing me to [temp.deduct]/8. SFINAE certainly does not apply in my example.

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #16 from Jonathan Wakely 2013-02-23 00:31:00 UTC --- Or see http://isocpp.org/forums

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #15 from Jonathan Wakely 2013-02-23 00:29:17 UTC --- [temp.deduct]/8 This is not the right place to learn C++, please use the gcc-help mailing list or another site.

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #14 from Kristian Spangsege 2013-02-23 00:02:55 UTC --- Jonathan, you say that: "Foo::type exists unconditionally, so SFINAE doesn't apply. The invalid type is not in the immediate context of the substitution." Could you p

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #13 from Kristian Spangsege 2013-02-22 23:46:04 UTC --- Jonathan, "The complete set" is the set *before* the number of arguments is considered to find the viable subset. To synthesize the declaration Foo::type must be known,

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #12 from Kristian Spangsege 2013-02-22 23:38:47 UTC --- Yes, so far so good, but where does the standard say that if synthesis fails for a particular candidate function template declaration, during overload resolution, then the

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #11 from Jonathan Wakely 2013-02-22 23:20:28 UTC --- as explained in comment 6

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #10 from Kristian Spangsege 2013-02-22 23:11:13 UTC --- Daniel - excuse me :-)

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #9 from Kristian Spangsege 2013-02-22 23:09:59 UTC --- Daniell, would you do me the favour of explaining exactly why you think my example is ill-formed?

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #7 from Daniel Krügler 2013-02-22 22:01:18 UTC --- (In reply to comment #4) > I think 13.3 [over.match] ¶2 and 13.3.1 [over.match.funcs] ¶7 say the > function > template specialization must be generated before the number of argumen

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #6 from Jonathan Wakely 2013-02-22 18:47:55 UTC --- (In reply to comment #5) > Function templates must not be instantiated unless the number of arguments > match. Where does the standard say that? > [C++11: 13.3/2]: >

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread kristian.spangsege at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #5 from Kristian Spangsege 2013-02-22 18:04:41 UTC --- (In reply to comment #4) > I think 13.3 [over.match] ¶2 and 13.3.1 [over.match.funcs] ¶7 say the > function > template specialization must be generated before the number of arg

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #4 from Jonathan Wakely 2013-02-22 16:24:42 UTC --- I think 13.3 [over.match] ¶2 and 13.3.1 [over.match.funcs] ¶7 say the function template specialization must be generated before the number of arguments is checked to see if the can

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #3 from Daniel Krügler 2013-02-22 10:59:28 UTC --- (In reply to comment #2) > Isn't G++ correct? Foo::type exists unconditionally, so SFINAE doesn't apply. > The invalid type is not in the immediate context of the substitution. This

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 --- Comment #2 from Jonathan Wakely 2013-02-22 10:42:05 UTC --- Isn't G++ correct? Foo::type exists unconditionally, so SFINAE doesn't apply. The invalid type is not in the immediate context of the substitution. To make this work you wou

[Bug c++/56421] Non-matching overload produces template substitution error

2013-02-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56421 Marek Polacek changed: What|Removed |Added CC||mpolacek at gcc dot gnu.org --- Comment