A few bugs connected to structs

Benjamin Thaut code at benjamin-thaut.de
Wed Jan 11 08:58:23 PST 2012


1. It's currently not possible to overload opAssign for structs with a 
template because opAssign(T)(T rh) if(is(T == typeof(this)))

is not allowed (stated in the documentation). And templates can not 
overload non template functions (already a known bug).

2. It's not possible to use auto ref with opAssign because 
opAssign(T)(auto ref T rh) if(is(T == typeof(this))) is not allowed 
(partly the same issue as 1).

Why is this not allowed? (The documentation does not state any reason)

3. Calling a method that is overloaded with shared / const / immutable 
from within a function has to be done with this.method()
otherwise the compiler complains about ambugiosity. Is method() not the 
same as this.method() ??

-- 
Kind Regards
Benjamin Thaut


More information about the Digitalmars-d mailing list