Writing UFCS function for any instance of a templated struct

Rene Zwanenburg renezwanenburg at gmail.com
Thu Sep 13 03:24:42 PDT 2012


That works, nice trick!

Thanks

On Thursday, 13 September 2012 at 10:09:08 UTC, David wrote:
> Am 13.09.2012 11:46, schrieb Rene Zwanenburg:
>> Hi,
>>
>> I'd like to write a function for a vector template which 
>> basically looks
>> like
>>
>> struct Vec(T, size_t size) {
>>   T[size] e;
>> }
>>
>> This template has a few properties with very common names like 
>> x, y, z,
>> etc. To avoid mistakes I'd like to write a template constraint 
>> for UFCS
>> functions so it accepts any instance of the Vec template, but 
>> nothing
>> else. Something in the gist of
>>
>> auto innerProduct(T)(const T v1, const T v2) if(is(T == Vec)) {
>>
>> }
>>
>> How can I do this?
>
> I am doing it in gl3n like this: 
> https://github.com/Dav1dde/gl3n/blob/master/gl3n/util.d#L15
>
> (Sorry when I just sent you a private e-mail, I clicked the 
> wrong answer button in thunderbird)




More information about the Digitalmars-d-learn mailing list