Template constraint: T is a value type
Jesse Phillips via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Oct 30 20:41:37 PDT 2014
On Wednesday, 29 October 2014 at 11:49:59 UTC, John Colvin wrote:
> On Wednesday, 29 October 2014 at 10:01:18 UTC, Gareth Foster
> wrote:
>> Hi there,
>>
>> I'm looking to write a function template that operates only on
>> value types. Basically I'm looking for an equivalent of
>>
>> where T: struct
>>
>> from C# (http://msdn.microsoft.com/en-us/library/d5x73970.aspx)
>>
>> I was thinking that maybe using
>>
>> template Foo(T) if (is(T : struct) or is(T: union)) { ... }
>>
>> or perhaps
>>
>> template Foo(T) if (!is(T : class)) { ... }
>>
>> would be correct, but I fear the first may be too limiting
>> (would simple data types such as int, char etc be allowed
>> here? I'd guess not.) and the second may be too lax.
>>
>> Any advice? Am I even going in remotely the right direction?
>> Thanks.
>
> std.traits.hasIndirections any use for you?
To more complete this:
template Foo(T) if(!hasIndirections!T)
http://dlang.org/phobos/std_traits.html#hasIndirections
More information about the Digitalmars-d-learn
mailing list