Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
July 18, 2011 Passing null array to template | ||||
---|---|---|---|---|
| ||||
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*) |
July 18, 2011 Re: Passing null array to template | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | 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
|
July 18, 2011 Re: Passing null array to template | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | 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
|
July 19, 2011 Re: Passing null array to template | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | 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? |
July 19, 2011 Re: Passing null array to template | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | 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 |
Copyright © 1999-2021 by the D Language Foundation