On Sunday, 8 May 2016 at 13:28:47 UTC, pineapple wrote:
[...]
I get a compiler error like so:

E:\Dropbox\Projects\d\mach\sdl\surface.d(434): Error: none of the overloads of 'opIndexAssign' are callable using argument types (GLColor!float, int, int), candidates are: E:\Dropbox\Projects\d\mach\sdl\surface.d(406): mach.sdl.surface.Surface.opIndexAssign(const(uint) value, const(int) x, const(int) y)

Meaning the overloads using GLColor are apparently silently ignored?

No they are not ignored, otherwise the following would not compile:

----
struct GLColor(T){T t0,t1,t2;}

struct Thing
{
void opIndexAssign(T)(in GLColor!T color, in int x, in int y){} void opIndexAssign(T1, T2)(in GLColor!T1 color, in Vector2!T2 vector){}
    void opIndexAssign(in uint value, in int x, in int y){}
}

void main(string[] args)
{
    Thing thing;
    thing[2,2] = GLColor!float(1, 1, 1);
}
----

Can you show your GLColor struct ? Maybe it contains an alias this or something else that mess the overload resolution.

Reply via email to