template? mixin? template mixins? for modifying a struct setup

ag0aep6g anonymous at example.com
Thu May 19 10:35:30 UTC 2022


On 19.05.22 12:15, Chris Katko wrote:
> given
> ```D
> struct COLOR
> {
> float r, g, b, a; // a is alpha (opposite of transparency)
> }
> 
> auto red   = COLOR(1,0,0,1);
> auto green = COLOR(0,1,0,1);
> auto blue  = COLOR(0,0,1,1);
> auto white = COLOR(1,1,1,1);
> //etc
> ```
> 
> is there a way to do:
> ```D
> auto myColor = GREY!(0.5);
> // where GREY!(0.5) becomes COLOR(0.5, 0.5, 0.5, 1.0);
> ```

What's wrong with a simple plain function?

COLOR grey(float rgb)
{
     return COLOR(rgb, rgb, rgb, 1);
}
auto myColor = grey(0.5);


More information about the Digitalmars-d-learn mailing list