| 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
Permalink
Reply