Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #5457

Re: Template argument determination

Newsgroups comp.lang.c++
From "A. Bolmarcich" <aggedor@earl-grey.cloud9.net>
Subject Re: Template argument determination
References <irh227$8du$1@dont-email.me>
Message-ID <slrnitob96.77f.aggedor@earl-grey.cloud9.net> (permalink)
Date 2011-05-24 17:11 -0500

Show all headers | View raw


On 2011-05-24, Victor Bazarov <v.bazarov@comcast.invalid> wrote:
> OK, try compiling this:
>
>    template<class T> struct FromT {
>        FromT(T) {}   // here is your non-explicit c-tor
>    };
>
>    template<class T> void foo(FromT<T> ft) {}
>
>    int main() {
>       foo(42);
>    }
>
> 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.

With foo<int>(4), the template argument to use for T is explicitly specified.
The instantiated function is void foo(FromT<int> ft).  In the call to that
function, the argument value 42 is implicitly converted using the FromT(int)
constructor (of the struct FromT<int> that was implicitly instantiated due
to it being the type of the parameter of foo).

Back to comp.lang.c++ | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

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