Writing UFCS function for any instance of a templated struct

David d at dav1d.de
Thu Sep 13 03:09:27 PDT 2012


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