www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Passing null array to template

reply Jesse Phillips <jessekphillips+D gmail.com> writes:
I'm wondering if this should be filed in Bugzilla. I'm guessing it should. The
blow should compile?

void main() {
	example(null);
}

void example()(string[] foo) {
}

test.d(3): Error: template test.example() does not match any function template 
declaration
test.d(3): Error: template test.example() cannot deduce template function from 
argument types !()(void*)
Jul 18 2011
parent reply David Nadlinger <see klickverbot.at> writes:
On 7/18/11 7:43 PM, Jesse Phillips wrote:
 I'm wondering if this should be filed in Bugzilla. I'm guessing it should. The
blow should compile?

 void main() {
 	example(null);
 }

 void example()(string[] foo) {
 }

 test.d(3): Error: template test.example() does not match any function template
 declaration
 test.d(3): Error: template test.example() cannot deduce template function from
 argument types !()(void*)

If that doesn't compile, it is clearly a bug. Please do a quick search on Bugzilla and add this as a new issue if it is not already present. Thanks, David
Jul 18 2011
next sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On 2011-07-18 10:44, David Nadlinger wrote:
 On 7/18/11 7:43 PM, Jesse Phillips wrote:
 I'm wondering if this should be filed in Bugzilla. I'm guessing it
 should. The blow should compile?
 
 void main() {
 
 example(null);
 
 }
 
 void example()(string[] foo) {
 }
 
 test.d(3): Error: template test.example() does not match any function
 template declaration
 test.d(3): Error: template test.example() cannot deduce template function
 from argument types !()(void*)

If that doesn't compile, it is clearly a bug. Please do a quick search on Bugzilla and add this as a new issue if it is not already present.

It's always been that way, I believe, but I don't know if the issue is in bugzilla. Given that there's only one template overload that it could match, it should really match, but with multiple overloads, there _will_ be cases where you'd have to cast to the appropriate type even if this particular situation worked. It would be nice if it worked when there was no ambiguity though. - Jonathan M Davis
Jul 18 2011
prev sibling next sibling parent Jesse Phillips <jessekphillips+d gmail.com> writes:
On Mon, 18 Jul 2011 19:44:38 +0200, David Nadlinger wrote:

 On 7/18/11 7:43 PM, Jesse Phillips wrote:
 I'm wondering if this should be filed in Bugzilla. I'm guessing it
 should. The blow should compile?

 void main() {
 	example(null);
 }

 void example()(string[] foo) {
 }

 test.d(3): Error: template test.example() does not match any function
 template declaration
 test.d(3): Error: template test.example() cannot deduce template
 function from argument types !()(void*)

If that doesn't compile, it is clearly a bug. Please do a quick search on Bugzilla and add this as a new issue if it is not already present. Thanks, David

http://d.puremagic.com/issues/show_bug.cgi?id=2394 Also, what does ITFI stand for? Implemented Template Function Interface?
Jul 18 2011
prev sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Tuesday 19 July 2011 01:19:11 Jesse Phillips wrote:
 On Mon, 18 Jul 2011 19:44:38 +0200, David Nadlinger wrote:
 On 7/18/11 7:43 PM, Jesse Phillips wrote:
 I'm wondering if this should be filed in Bugzilla. I'm guessing it
 should. The blow should compile?
 
 void main() {
 
 	example(null);
 
 }
 
 void example()(string[] foo) {
 }
 
 test.d(3): Error: template test.example() does not match any function
 template declaration
 test.d(3): Error: template test.example() cannot deduce template
 function from argument types !()(void*)

If that doesn't compile, it is clearly a bug. Please do a quick search on Bugzilla and add this as a new issue if it is not already present. Thanks, David

http://d.puremagic.com/issues/show_bug.cgi?id=2394 Also, what does ITFI stand for? Implemented Template Function Interface?

I believe that it means Implicit Function Template Instantiation: http://www.digitalmars.com/d/archives/digitalmars/D/IFTI_61299.html While it exists in C++, it seems that the term is an invention of the D community. - Jonathan M Davis
Jul 18 2011