Click here to Skip to main content
15,887,267 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: primary key field Pin
David Crow12-Mar-08 2:31
David Crow12-Mar-08 2:31 
GeneralNetworking Pin
mirtu11-Mar-08 2:47
mirtu11-Mar-08 2:47 
QuestionRe: Networking Pin
David Crow12-Mar-08 2:52
David Crow12-Mar-08 2:52 
GeneralRe: Networking Pin
mirtu13-Mar-08 21:38
mirtu13-Mar-08 21:38 
GeneralRe: Networking Pin
David Crow14-Mar-08 2:38
David Crow14-Mar-08 2:38 
GeneralRe: Networking Pin
mirtu14-Mar-08 18:29
mirtu14-Mar-08 18:29 
GeneralRe: Networking Pin
David Crow15-Mar-08 4:23
David Crow15-Mar-08 4:23 
Generaltemplate function argument deduce Pin
George_George11-Mar-08 2:38
George_George11-Mar-08 2:38 
Hello everyone,


Why in the following code segment (along with Bjarne's comments), function get_new can not deduce template parameter type to be int by its return value assignment to int * p1, and deduce T* is int*, and so T is int (e.g. as we did for function release in the same sample below)?

class Memory { // some Allocator
public:
template <class T> T * get _new ();
template <class T > void release (T&);
/ / ...
};

template <class Allocator> void f (Allocator &m )
{
int * p1 = m.get _ new <int>(); // syntax error: int after lessthan
operator
int * p2 = m.template get _ new <int>(); // explicit qualification
/ / ...
m.release (p1); // template argument deduced: no explicit qualification needed
m.release (p2 );
}


Explicit qualification of get _new() is necessary because its template parameter cannot be deduced. In this case, the t e m p l a t e prefix must be used to inform the compiler (and the human reader) that get _new is a member template so that explicit qualification with the desired type of element is possible. Without the qualification with template , we would get a syntax error because the < would be assumed to be a less than operator. The need for qualification with template is rare because most template parameters are deduced.


thanks in advance,
George
GeneralRe: template function argument deduce Pin
CPallini11-Mar-08 3:06
mveCPallini11-Mar-08 3:06 
GeneralRe: template function argument deduce Pin
George_George11-Mar-08 3:25
George_George11-Mar-08 3:25 
GeneralRe: template function argument deduce Pin
CPallini11-Mar-08 3:28
mveCPallini11-Mar-08 3:28 
GeneralRe: template function argument deduce Pin
George_George11-Mar-08 14:35
George_George11-Mar-08 14:35 
GeneralRe: template function argument deduce Pin
CPallini11-Mar-08 22:30
mveCPallini11-Mar-08 22:30 
GeneralRe: template function argument deduce Pin
George_George11-Mar-08 22:54
George_George11-Mar-08 22:54 
GeneralRe: template function argument deduce Pin
Stephen Hewitt11-Mar-08 19:31
Stephen Hewitt11-Mar-08 19:31 
GeneralRe: template function argument deduce Pin
Rajkumar R11-Mar-08 20:33
Rajkumar R11-Mar-08 20:33 
GeneralRe: template function argument deduce Pin
Stephen Hewitt11-Mar-08 20:56
Stephen Hewitt11-Mar-08 20:56 
GeneralRe: template function argument deduce Pin
Rajkumar R11-Mar-08 21:28
Rajkumar R11-Mar-08 21:28 
GeneralRe: template function argument deduce Pin
Stephen Hewitt11-Mar-08 21:33
Stephen Hewitt11-Mar-08 21:33 
GeneralRe: template function argument deduce Pin
Rajkumar R11-Mar-08 21:36
Rajkumar R11-Mar-08 21:36 
GeneralRe: template function argument deduce Pin
Stephen Hewitt11-Mar-08 21:39
Stephen Hewitt11-Mar-08 21:39 
GeneralRe: template function argument deduce [modified] Pin
Rajkumar R12-Mar-08 0:02
Rajkumar R12-Mar-08 0:02 
GeneralRe: template function argument deduce Pin
CPallini11-Mar-08 22:29
mveCPallini11-Mar-08 22:29 
GeneralRe: template function argument deduce Pin
Stephen Hewitt11-Mar-08 19:33
Stephen Hewitt11-Mar-08 19:33 
GeneralRe: template function argument deduce Pin
George_George11-Mar-08 19:52
George_George11-Mar-08 19:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.