Thread overview | |||||
---|---|---|---|---|---|
|
September 07, 2015 function argument restrictions for templated struct | ||||
---|---|---|---|---|
| ||||
Hi. Is there a more elegant way to write the template arg restrictions for display? Thanks. Laeeth import std.stdio; import std.traits; struct Bar(bool test) { double a; static if(test) double b; } void display(T)(T a) if (__traits(isSame, TemplateOf!(T), Bar)) { writefln("%s",a); } void main(string[] args) { auto a=Bar!false(1.0); auto b=Bar!true(1.0,2.0); a.display; b.display; } |
September 07, 2015 Re: function argument restrictions for templated struct | ||||
---|---|---|---|---|
| ||||
Posted in reply to Laeeth Isharc | On Monday 07 September 2015 17:51, Laeeth Isharc wrote: > Is there a more elegant way to write the template arg restrictions for display? [...] > void display(T)(T a) > if (__traits(isSame, TemplateOf!(T), Bar)) > { > writefln("%s",a); > } if (isInstanceOf!(Bar, T)) |
September 07, 2015 Re: function argument restrictions for templated struct | ||||
---|---|---|---|---|
| ||||
Posted in reply to anonymous | On Monday, 7 September 2015 at 16:27:21 UTC, anonymous wrote:
> On Monday 07 September 2015 17:51, Laeeth Isharc wrote:
>
>> Is there a more elegant way to write the template arg restrictions for display?
> [...]
>> void display(T)(T a)
>> if (__traits(isSame, TemplateOf!(T), Bar))
>> {
>> writefln("%s",a);
>> }
>
> if (isInstanceOf!(Bar, T))
Thanks !
|
Copyright © 1999-2021 by the D Language Foundation