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.