Есть хорошая статья о ковариантности и контравариантности в C #.Можно ли реализовать такой ковариантный / контравариантный интерфейс в C ++ / CLI?
Допустим, у меня есть такой код на C #:
interface IMyGeneric<out T> { }
interface IMyOtherGeneric<out T> { }
class MyGeneric<T> : IMyGeneric<T> { }
class MyOtherGeneric<T> : IMyOtherGeneric<T> { }
void Foo(IMyGeneric<IMyOtherGeneric<string>> arg) { }
void Bar()
{
var mgs = new MyGeneric<MyOtherGeneric<string>>();
Foo(mgs);
}
Как я могу, или я могувообще, реализовать это в C ++ / CLI?