Thread overview | ||||||
---|---|---|---|---|---|---|
|
February 13, 2008 Template conflict with Function | ||||
---|---|---|---|---|
| ||||
Hello, I've got another question regarding templates. I have the following functions: int foo (int i) { } int foo (T, U) (inout Expression !(T, U) expr) { } The compiler stops with error: "template Test.foo(T,U) conflicts with function Test.foo at Test.d(191)". I'd like to call them in the following way: foo (10); Expression !(long, int) x; foo (x); I also cannot put them into one function template, because the parameter storage class es differ. best regards Matthias Walter |
February 13, 2008 Re: Template conflict with Function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthias Walter | Matthias Walter wrote: > Hello, > > I've got another question regarding templates. I have the following functions: > > int foo (int i) > { > > } > > int foo (T, U) (inout Expression !(T, U) expr) > { > > } > > The compiler stops with error: "template Test.foo(T,U) conflicts with function Test.foo at Test.d(191)". > > I'd like to call them in the following way: > > foo (10); > Expression !(long, int) x; > foo (x); > > I also cannot put them into one function template, because the parameter storage class es differ. > > best regards > Matthias Walter Re-write the first one as: int foo()(int i) { } That is, make it another, second function template, with no template parameters. -- Kirk McDonald http://kirkmcdonald.blogspot.com Pyd: Connecting D and Python http://pyd.dsource.org |
February 13, 2008 Re: Template conflict with Function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kirk McDonald | Kirk McDonald:
> int foo()(int i) {
> }
> That is, make it another, second function template, with no template parameters.
If not already present, I think this little trick deserves to go into the D docs :-)
Bye,
bearophile
|
February 13, 2008 Re: Template conflict with Function | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | bearophile wrote:
> Kirk McDonald:
>> int foo()(int i) {
>> }
>> That is, make it another, second function template, with no template parameters.
>
> If not already present, I think this little trick deserves to go into the D docs :-)
Until then there's always the Comments wiki page.
--bb
|
Copyright © 1999-2021 by the D Language Foundation