digitalmars.D - C#4 Covariance/Contravariance
- bearophile <bearophileHUGS lycos.com> Jun 07 2009
- "Lionello Lunesu" <lionello lunesu.remove.com> Jun 09 2009
- Robert Fraser <fraserofthenight gmail.com> Jun 09 2009
- bearophile <bearophileHUGS lycos.com> Jun 09 2009
- Robert Fraser <fraserofthenight gmail.com> Jun 09 2009
- bearophile <bearophileHUGS lycos.com> Jun 10 2009
- "Lionello Lunesu" <lionello lunesu.remove.com> Jun 09 2009
- Daniel Keep <daniel.keep.lists gmail.com> Jun 09 2009
From the last C#: http://codepad.org/kQgbwAqJ Bye, bearophile
Jun 07 2009
"bearophile" <bearophileHUGS lycos.com> wrote in message news:h0ggl7$60f$1 digitalmars.com...From the last C#: http://codepad.org/kQgbwAqJ Bye, bearophile
Lionello likes this
Jun 09 2009
Lionello Lunesu wrote:"bearophile" <bearophileHUGS lycos.com> wrote in message news:h0ggl7$60f$1 digitalmars.com...From the last C#: http://codepad.org/kQgbwAqJ Bye, bearophile
Lionello likes this
In D if you want to treat a Template!(SomeClass) as a Template!(Object), it's as easy as "cast(Template!(Object)) cast(void*) x"
Jun 09 2009
Robert Fraser:In D if you want to treat a Template!(SomeClass) as a Template!(Object), it's as easy as "cast(Template!(Object)) cast(void*) x"
How is this related to Covariance/Contravariance and in/out keywords, as shown in C#4? Bye, bearophile
Jun 09 2009
bearophile wrote:Robert Fraser:In D if you want to treat a Template!(SomeClass) as a Template!(Object), it's as easy as "cast(Template!(Object)) cast(void*) x"
How is this related to Covariance/Contravariance and in/out keywords, as shown in C#4? Bye, bearophile
Errr... isn't that the point of covariance/contravariance?
Jun 09 2009
Robert Fraser:Errr... isn't that the point of covariance/contravariance?
I don't know some of the things I post here. I just assume people here know better than me. Bye, bearophile
Jun 10 2009
"Robert Fraser" <fraserofthenight gmail.com> wrote in message news:h0mui6$2rlh$1 digitalmars.com...Lionello Lunesu wrote:"bearophile" <bearophileHUGS lycos.com> wrote in message news:h0ggl7$60f$1 digitalmars.com...From the last C#: http://codepad.org/kQgbwAqJ Bye, bearophile
Lionello likes this
In D if you want to treat a Template!(SomeClass) as a Template!(Object), it's as easy as "cast(Template!(Object)) cast(void*) x"
Does not work for interfaces though. L.
Jun 09 2009
Lionello Lunesu wrote:"Robert Fraser" <fraserofthenight gmail.com> wrote in message news:h0mui6$2rlh$1 digitalmars.com...Lionello Lunesu wrote:"bearophile" <bearophileHUGS lycos.com> wrote in message news:h0ggl7$60f$1 digitalmars.com...From the last C#: http://codepad.org/kQgbwAqJ Bye, bearophile
Lionello likes this
In D if you want to treat a Template!(SomeClass) as a Template!(Object), it's as easy as "cast(Template!(Object)) cast(void*) x"
Does not work for interfaces though. L.
Hell, it's not even safe. class Template(T) { static T instance; final T getInstance() { return instance; } } Or class Template(T) { static if( is( T == SomeClass ) ) { bool boom() { return true; } } void stuff(); } (cast(Template!(Object)) cast(void*) new Template!(SomeClass)).stuff();
Jun 09 2009









bearophile <bearophileHUGS lycos.com> 