Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #5514
| Newsgroups | comp.lang.c++ |
|---|---|
| From | "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> |
| Subject | Re: Template argument determination |
| References | <irh227$8du$1@dont-email.me> <slrnitob96.77f.aggedor@earl-grey.cloud9.net> <irhqjn$cjf$2@reader1.panix.com> |
| Message-ID | <slrnitqfos.10rf.aggedor@earl-grey.cloud9.net> (permalink) |
| Date | 2011-05-25 12:40 -0500 |
On 2011-05-25, Ruben Safir <ruben@mrbrklyn.com> wrote: > On Tue, 24 May 2011 17:11:50 -0500, A. Bolmarcich wrote: > > >>> And then explain. Then change the line in 'main' to >>> >>> foo<int>(42); >>> >>> and try again. And if the results are different, try to explain why >>> they are. >> >> For original program with foo(42), the template for foo is not >> instantiated because the compiler is not able to deduce the template >> argument to use for T. > > > I know this is going to sound ignorant, but why can't it. There is one > type for the argument, int. There is one type that the function is > supposed to take in, a struct<T>. There aren't any choice but to either > fail for install the int into an implicit constructor if one is available. That is not the choice that C++ uses. If function template arguments are explicitly specified or can be deduced, the function template is instantiated, and, ignoring overloaded functions, that function is the one that is called. Otherwise (function templates are not instantiated), the call is to a non-template function, such as one declared by void foo(int) If that function is not declared but void foo(X) is and an int can be implicitly converted to a X, then the expression foo(42) calls foo(X). ~
Back to comp.lang.c++ | Previous | Next — Previous in thread | Find similar
Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-23 20:31 +0000
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-24 02:50 +0000
Re: Template argument determination Michael Doubez <michael.doubez@free.fr> - 2011-05-24 03:48 -0700
Re: Template argument determination "Balog Pal" <pasa@lib.hu> - 2011-05-24 13:06 +0200
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-24 14:44 +0000
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-24 15:04 +0000
Re: Template argument determination "Balog Pal" <pasa@lib.hu> - 2011-05-24 17:33 +0200
Re: Template argument determination Victor Bazarov <v.bazarov@comcast.invalid> - 2011-05-24 11:43 -0400
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-24 12:32 -0500
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-24 18:08 +0000
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-24 14:32 -0500
Re: Template argument determination Victor Bazarov <v.bazarov@comcast.invalid> - 2011-05-24 15:48 -0400
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-24 17:11 -0500
Re: Template argument determination Victor Bazarov <v.bazarov@comcast.invalid> - 2011-05-24 19:04 -0400
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-25 12:37 -0500
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-26 16:12 +0000
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-26 13:25 -0500
Re: Template argument determination Ruben Safir <ruben@mrbrklyn.com> - 2011-05-25 02:47 +0000
Re: Template argument determination "Balog Pal" <pasa@lib.hu> - 2011-05-25 10:06 +0200
Re: Template argument determination "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-25 12:40 -0500
csiph-web