Re: Defining a single opCast disables explicit cast to base interfaces

2015-03-18 Thread Jonathan M Davis via Digitalmars-d
On Monday, March 16, 2015 22:27:36 Ali Çehreli via Digitalmars-d wrote: > The following program compiles fine: > > interface I > {} > > class B : I > {} > > class C : B > { > int i; > } > > void main() > { > auto c = new C; > > auto i = cast(I)c;// compiles > auto b = cast(B

Re: Defining a single opCast disables explicit cast to base interfaces

2015-03-17 Thread jkpl via Digitalmars-d
On Tuesday, 17 March 2015 at 05:27:38 UTC, Ali Çehreli wrote: The following program compiles fine: interface I {} class B : I {} class C : B { int i; } void main() { auto c = new C; auto i = cast(I)c;// compiles auto b = cast(B)c;// compiles } Let's add an unrelated

Re: Defining a single opCast disables explicit cast to base interfaces

2015-03-16 Thread Ali Çehreli via Digitalmars-d
I forgot to mention that this discussion is carried over from the D.learn newsgroup: http://forum.dlang.org/thread/uwuvqurfqbetypdlw...@forum.dlang.org Ali

Defining a single opCast disables explicit cast to base interfaces

2015-03-16 Thread Ali Çehreli via Digitalmars-d
The following program compiles fine: interface I {} class B : I {} class C : B { int i; } void main() { auto c = new C; auto i = cast(I)c;// compiles auto b = cast(B)c;// compiles } Let's add an unrelated opCast to C: class C : B { int i; int opCast(T : int)