当我声明嵌套值类型的句柄时,Visual Studio(2008 和 2010)给我以下编译器错误:
error C2248: 'Outer::Inner' : cannot access private struct declared in class 'Outer'
下面是编译失败的代码:
ref class Outer
{
private:
value struct Inner { };
void F()
{
Inner i; // OK
Inner^ h; // C2248
}
};
当我将Inner的类型从value struct更改为ref struct时,问题就消失了。
ref class Outer
{
private:
ref struct Inner { };
void F()
{
Inner i; // OK
Inner^ h; // OK
}
};
是否有关于我错过的嵌套值类型句柄的规则,或者这是一个 VS 错误?