Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
December 08, 2009 [Issue 3600] New: template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3600 Summary: template instantiation with empty tuple Product: D Version: 2.036 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: garick_home_333@rambler.ru --- Comment #0 from garick <garick_home_333@rambler.ru> 2009-12-08 01:36:10 PST --- string func( A... )( string name, string v ) { return "int " ~ name ~ " = " ~ v ~ ";"; } void main() { writeln( func!( int, long, float )( "val", "10" ) ); writeln( func!()( "tmp", "77" ) ); // D 2.036 successfully compile this, // but not 2.037 // worked in 2.037 alias func!() TMP; writeln( TMP( "tmp", "77" ) ); } 2.037 output: funcmix.d(13): Error: template funcmix.func(A...) does not match any function template declaration funcmix.d(13): Error: template funcmix.func(A...) cannot deduce template function from argument types !()(string,string) funcmix.d(13): Error: template instance errors instantiating template May be because '()' and '()' tuples are incompartible ? see Issue 3278 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 08, 2009 [Issue 3600] template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
Posted in reply to garick | http://d.puremagic.com/issues/show_bug.cgi?id=3600 garick <garick_home_333@rambler.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 29, 2009 [Issue 3600] template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
Posted in reply to garick | http://d.puremagic.com/issues/show_bug.cgi?id=3600 Rainer Schuetze <r.sagitario@gmx.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |r.sagitario@gmx.de --- Comment #1 from Rainer Schuetze <r.sagitario@gmx.de> 2009-12-29 04:12:05 PST --- I don't know why this worked before and could not see a change that caused the regression from version 2.036, but here is a patch that adds an empty type tuple to the deduced template parameters if it has not yet been created and does not show up in the function parameters: Index: template.c =================================================================== --- template.c (revision 317) +++ template.c (working copy) @@ -1142,6 +1142,13 @@ /* Fill in any missing arguments with their defaults. */ + if(tp && fptupindex < 0 && nargsi == dedargs->dim - 1) + { // for variadic type parameters not in function parameters, allow empty tuple + Tuple *t = new Tuple(); + dedargs->data[dedargs->dim - 1] = (void *)t; + nargsi++; + } + for (i = nargsi; i < dedargs->dim; i++) { TemplateParameter *tp = (TemplateParameter *)parameters->data[i]; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 29, 2009 [Issue 3600] template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
Posted in reply to garick | http://d.puremagic.com/issues/show_bug.cgi?id=3600 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au Severity|major |regression -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 18, 2010 [Issue 3600] template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
Posted in reply to garick | http://d.puremagic.com/issues/show_bug.cgi?id=3600 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2010-01-18 01:14:55 PST --- Changeset 340 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 31, 2010 [Issue 3600] template instantiation with empty tuple | ||||
---|---|---|---|---|
| ||||
Posted in reply to garick | http://d.puremagic.com/issues/show_bug.cgi?id=3600 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #3 from Walter Bright <bugzilla@digitalmars.com> 2010-01-30 22:45:55 PST --- fixed dmd 2.040 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation