On 2018-05-20 17:40:39 +0000, Robert M. Münch said:
Hi Jonathan, great! This got me a step further. So I can declare my
member now. But I get an implict cast error when I try:
class a {
... myStream;
}
class b {
typeof(a.myStream.filter!(x => x == myMessage)) mySubStream;
}
void myFunc() {
a myA = new a();
b myB = new b();
myB.mySubstream = myA.myStream.filter!(x => x == myMessage);
}
This gives (unnecessary stuff stripped):
Error: cannot implicitly convert expression filter(...) of type
app.myFunc.filter!(x => x == myMessage) to app.b.filter!(x => x ==
myMessage)
Answering myself: Using an alias helps.
alias typeof(a.myStream.filter!(x => x == myMessage)) myMessageType;
class b {
myMessageType mySubStream;
}
void myFunc() {
a myA = new a();
b myB = new b();
myB.mySubstream = cast(myMessageType)myA.myStream.filter!(x => x ==
myMessage);
}
But I still don't understand why I can't write things explicitly but
have to use an alias for this.
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster