June 20, 2014 how to resolve "matches more than one template declaration"? | ||||
---|---|---|---|---|
| ||||
Hi, Newbie question: void foo(S)(S oneparam){} void foo(S)(S oneparam, int anotherParam){} alias fooStr = foo!string; Gives: "Error: template test.foo matches more than one template declaration:" How could I fix it so the alias aliases one of the two versions? Also, why can't "fooStr" be an alias for both templates? Considering than the generic parameter is not what changes between both, I tough I could do fooStr(somestring) or fooStr(somestring, someint) with this alias. |
June 20, 2014 Re: how to resolve "matches more than one template declaration"? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Juanjo Alvarez | On Fri, 20 Jun 2014 20:40:49 +0000 Juanjo Alvarez via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote: > Hi, > > Newbie question: > > void foo(S)(S oneparam){} > void foo(S)(S oneparam, int anotherParam){} > alias fooStr = foo!string; > > Gives: > > "Error: template test.foo matches more than one template declaration:" > > How could I fix it so the alias aliases one of the two versions? Also, why can't "fooStr" be an alias for both templates? Considering than the generic parameter is not what changes between both, I tough I could do fooStr(somestring) or fooStr(somestring, someint) with this alias. void foo(S)(S oneparam) {} is equivalent to template foo(S) { void foo(S oneparam) {} } so do this: template foo(S) { void foo(S oneparam){} void foo(S oneparam, int anotherParam){} } alias fooStr = foo!string; - Jonathan M Davis |
Copyright © 1999-2021 by the D Language Foundation