Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ > Re: Default fun...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 6 of 7 Topic 45808 of 46738
Post > Topic >>

Re: Default function parameter values

by Andrey Tarasevich <andreytarasevich@[EMAIL PROTECTED] > May 8, 2008 at 05:32 PM

Tim Frink wrote:
>> Because the compiler needs to know what 'T' is.  It cannot deduce
>> the type from an integral expression ('0').  You need to tell it
>> what the type T is by supplying the template argument, like
>>
>>     objectA.foo<sometype>(string("test"));
> 
> But why can I invoke the function with:
> 
> 	objectA.foo( string( "test" ), objectA, &A::funcPtr );

You cannot. The second argument must have a pointer type. Your 'objectA' 
is not a pointer (and user-defined conversion operators, if any, will 
not be considered in this case). Therefore, the above invocation is 
ill-formed.

You can invoke it as follows

   objectA.foo( string( "test" ), &objectA, &A::funcPtr );

(note the extra '&').

> where I do not specify the type of T either?
> Where does the compiler get to information what type T is?

It is called "function template argument deduction". When you specify an 
explicit argument for the corresponding parameter, the compiler will 
analyze the type of the argument you supplied, and _deduce_ the meaning 
of 'T' from that type. For example, in the above (corrected) call, the 
meaning of 'T' can be deduced from either the second or the third 
argument. It has to be 'A'.

When you don't supply explicit arguments, the complier has nothing to 
deduce the meaning of 'T' from. (Default arguments are ignored by the 
deduction process).

-- 
Best regards,
Andrey Tarasevich
 




 7 Posts in Topic:
Default function parameter values
Tim Frink <plfriko@[EM  2008-05-08 12:16:07 
Re: Default function parameter values
"Victor Bazarov"  2008-05-08 08:25:23 
Re: Default function parameter values
Andrey Tarasevich <and  2008-05-08 17:20:50 
Re: Default function parameter values
Tim Frink <plfriko@[EM  2008-05-08 13:10:36 
Re: Default function parameter values
"Victor Bazarov"  2008-05-08 10:00:16 
Re: Default function parameter values
Andrey Tarasevich <and  2008-05-08 17:32:08 
Re: Default function parameter values
Tim Frink <plfriko@[EM  2008-05-09 10:13:17 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed Jul 9 0:26:48 CDT 2008.