digitalmars.D.bugs - Mixins and operator overloading
- Regan Heath (34/34) Mar 16 2005 import std.stdio;
- Thomas Kuehne (13/47) Mar 22 2005 -----BEGIN PGP SIGNED MESSAGE-----
import std.stdio; class A { A opCatAssign(int[] arr) { foreach(int v; arr) writefln(v); return this; } } class B { template opCatAssign(Type) { B opCatAssign(Type arr) { foreach(typeof(arr[0]) v; arr) writefln(v); return this; } } mixin opCatAssign!(int[]); } void main() { static int[] arr = [0,1,2]; A a = new A(); B b = new B(); a ~= arr; b ~= arr; //Error: Can only concatenate arrays } Regan
Mar 16 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Regan Heath schrieb am Thu, 17 Mar 2005 20:07:08 +1300:import std.stdio; class A { A opCatAssign(int[] arr) { foreach(int v; arr) writefln(v); return this; } } class B { template opCatAssign(Type) { B opCatAssign(Type arr) { foreach(typeof(arr[0]) v; arr) writefln(v); return this; } } mixin opCatAssign!(int[]); } void main() { static int[] arr = [0,1,2]; A a = new A(); B b = new B(); a ~= arr; b ~= arr; //Error: Can only concatenate arrays } ReganAdded to DStress as http://dstress.kuehne.cn/run/opCatAssign_06.d http://dstress.kuehne.cn/run/opCatAssign_07.d http://dstress.kuehne.cn/run/opCatAssign_08.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCQHdK3w+/yD4P9tIRAnm7AJwNGdsRxiHuuCyn48tGC2Wsji4ZxQCePopw EwW72e8kRRTbPEtl52evVPk= =9E2d -----END PGP SIGNATURE-----
Mar 22 2005