RE: Address of template function bug (was: Overload resolution compilation error)

2007-08-06 Thread Dave Korn
On 06 August 2007 02:13, Rodolfo Lima wrote: > Rodolfo Schulz de Lima escreveu: >> Dave Korn escreveu: >>> Thanks, and do drop a note back with a summary of what you find out over >>> there when you're done; if there's definitely a bug in gcc's >>> understanding of the resolution rules, obviousl

Re: Address of template function bug (was: Overload resolution compilation error)

2007-08-05 Thread Rodolfo Lima
Rodolfo Schulz de Lima escreveu: > Dave Korn escreveu: >> Thanks, and do drop a note back with a summary of what you find out > over >> there when you're done; if there's definitely a bug in gcc's > understanding of >> the resolution rules, obviously we'd like to open a PR and get it fixed. > >

Address of template function bug (was: Overload resolution compilation error)

2007-07-31 Thread Rodolfo Schulz de Lima
Dave Korn escreveu: > Thanks, and do drop a note back with a summary of what you find out over > there when you're done; if there's definitely a bug in gcc's understanding of > the resolution rules, obviously we'd like to open a PR and get it fixed. I think we have finally a consensus at ht

Re: Overload resolution compilation error

2007-07-30 Thread Rodolfo Schulz de Lima
Dave Korn escreveu: Thanks, and do drop a note back with a summary of what you find out over there when you're done; if there's definitely a bug in gcc's understanding of the resolution rules, obviously we'd like to open a PR and get it fixed. I think we have finally a consensus at http://gr

Re: Overload resolution compilation error

2007-07-20 Thread Ling-hua Tseng
Rodolfo Schulz de Lima wrote > Ling-hua Tseng escreveu: > > Obviously, {1, 2, 4, 5, 6, 7} are not matched. > > Maybe you think that the item 3 is matched. > > Unfortunately, it stands for the non-template functions. > > Are you sure that it doesn't include template functions? Because I think > it

RE: Overload resolution compilation error

2007-07-20 Thread Dave Korn
On 20 July 2007 16:31, Rodolfo Schulz de Lima wrote: >> Guys, why don't you take this to comp.std.c++ to get an authoritative >> answer? That's where you'll find the greatest concentration of people who >> really know what the standard /actually means/ by what it says... > > Alright, thread mo

Re: Overload resolution compilation error

2007-07-20 Thread Rodolfo Schulz de Lima
Guys, why don't you take this to comp.std.c++ to get an authoritative answer? That's where you'll find the greatest concentration of people who really know what the standard /actually means/ by what it says... Alright, thread moved to comp.lang.c++.moderated, subject "Overload resolution wit

RE: Overload resolution compilation error

2007-07-20 Thread Dave Korn
On 20 July 2007 14:57, Rodolfo Schulz de Lima wrote: > Ling-hua Tseng escreveu: >> Obviously, {1, 2, 4, 5, 6, 7} are not matched. >> Maybe you think that the item 3 is matched. >> Unfortunately, it stands for the non-template functions. > > Are you sure that it doesn't include template functions?

Re: Overload resolution compilation error

2007-07-20 Thread Rodolfo Schulz de Lima
Ling-hua Tseng escreveu: Obviously, {1, 2, 4, 5, 6, 7} are not matched. Maybe you think that the item 3 is matched. Unfortunately, it stands for the non-template functions. Are you sure that it doesn't include template functions? Because I think it makes sense to consider them too (as Visual S

Re: Overload resolution compilation error

2007-07-19 Thread Ling-hua Tseng
On Thu, 19 Jul 2007 21:19:09 -0300, Rodolfo Lima wrote > In my first example, the target type is the type of the address > expression, It cannot be treated as the target in paragraph 1 of section 13.4 (ISO/IEC 14882:2003). Again, here is the list of possible targets: 1. an object or reference be

Re: Overload resolution compilation error

2007-07-19 Thread Rodolfo Lima
"Ling-hua Tseng" <[EMAIL PROTECTED]> escreveu na mensagem > What is the `target' in your program? > The answer is NOTHING. > So the set of overloaded functions is empty at beginning. In my first example, the target type is the type of the address expression, i.e., the type of the source. I'll re

Re: Overload resolution compilation error

2007-07-19 Thread Ling-hua Tseng
On Thu, 19 Jul 2007 19:25:38 -0300, Rodolfo Lima wrote > If I understand this correctly, when we have the following declarations: > > template void foo() {} > void foo() {} > > The overload set for "&foo" at first contains all "void foo()" > and "void foo()". Then, because of the presence of t

Re: Overload resolution compilation error

2007-07-19 Thread Rodolfo Lima
> The function template `std::make_pair<>()' is an example. > You can directly call it without <>. > Since &print is not a call expression, C++ compilers cannot determine it > by > function arguments. You're right, I forgot that rather trivial example. But what I'm trying to achieve is the corre

Re: Overload resolution compilation error

2007-07-19 Thread Ling-hua Tseng
On Thu, 19 Jul 2007 14:45:31 -0300, Rodolfo Schulz de Lima wrote > &print is not a call expression the same way &print<5> isn't, but > the latter is resolved correctly. It's because you have specified it explicitly. > I cannot see how a template function can be instantiated without <>, > since it

Re: Overload resolution compilation error

2007-07-19 Thread Rodolfo Schulz de Lima
Ling-hua Tseng escreveu: Since the sub-expression `&print' is not a call expression, the overload resolution mechanism will not select the non-template version first. &print is not a call expression the same way &print<5> isn't, but the latter is resolved correctly. And the function templa

Re: Overload resolution compilation error

2007-07-19 Thread Ling-hua Tseng
On Thu, 19 Jul 2007 12:59:09 -0300, Rodolfo Schulz de Lima wrote > Hi, the code below doesn't compile with gcc-4.2, with the following error: > > test.cpp: In function ‘int main()’: > test.cpp:19: error: no matching function for call to > ‘call()’ > > It compiles and runs fine with Visual Studio

Overload resolution compilation error

2007-07-19 Thread Rodolfo Schulz de Lima
Hi, the code below doesn't compile with gcc-4.2, with the following error: test.cpp: In function ‘int main()’: test.cpp:19: error: no matching function for call to ‘call(overloaded function type>)’ It compiles and runs fine with Visual Studio 2005. I think the compiler should see that if I'm c