Uniform function syntax doesn't change the member functions of a type. It j=
ust=20
allows you to call functions as if they were member functions. And how coul=
d it=20
be otherwise? Every time you imported a new module, it could completely cha=
nge=20
the set of member functions for any types in the current module. That would=
be=20
really bad. Not to mention, all of the code that relies on knowing what the=
=20
member functions actually are would be screwed if uniform function syntaxt=
=20
affected __traits(getMember ...).
Arrays don't have member functions. getMember _might_ give you properties l=
ike=20
length (I'd have to try it to know for sure), but it has no member function=
s, so=20
of course it isn't going to find popFront() and the like in its member func=
tions.
If you want that sort of behaviour, use __traits(compiles, ...) instead.
Uniform function syntax is syntactic sugar. It should not change the meanin=
g of=20
a program like it would if you tried to make them member functions accordin=
g to=20
__traits.
=2D Jonathan M Davis