[Issue 8584] bug with std.range.zip? range with opEquals(const) const not allowed inside zip

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Aug 26 10:45:04 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=8584



--- Comment #2 from thelastmammoth at gmail.com 2012-08-26 10:45:02 PDT ---
copied form the above mentioned thread:


---
import std.range;
struct A{
    int x;
    //bool opEquals(const A a) {return a.x==x;} //comiles when this 
is used
    //bool opEquals(const A a)const{return a.x==x;} //will not 
compile
        bool opEquals(A a)const{return a.x==x;} //will not compile
}

struct Range(S){
    auto front(){return 0;}
    auto popFront(){}
    auto empty(){return false;}
}

void main(){
    auto a=Range!A();
    zip(a,a);
}
----

phobos/std/range.d(3449): Error: function 
std.typecons.Tuple!(Range!(A),Range!(A)).Tuple.opEquals!(const(Tuple!(Range!(A),Range!(A)))).opEquals 
(const(Tuple!(Range!(A),Range!(A))) rhs) is not callable using 
argument types (const(Tuple!(Range!(A),Range!(A)))) const
phobos/std/range.d(3811): Error: template instance 
std.range.Zip!(Range!(A),Range!(A)) error instantiating
scratchd(26):        instantiated from here: 
zip!(Range!(A),Range!(A))
test_scratch.d(26): Error: template instance 
std.range.zip!(Range!(A),Range!(A)) error instantiating

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list