2010 年には C++/CLI のサポートが非常に悪かったので (c++/cli のウィザードはありません!)、私のプロジェクトの 1 つはまだ VS2005 C++/CLI です。今こそ、この最後のプロジェクトを移行するときです。残念ながら、コンパイル時にエラーが発生します。そのうちの 2 つは、以前は完全に機能していたため、理解できません。VS2012 でこの小さなスニペットをコンパイルしてみてください。
enum class EMyEnum
{
Unknown,
NotBetter,
};
Array ^lEnums=Enum::GetValues(EMyEnum::typeid);
Object ^test=lEnums->GetValue(0);
EMyEnum t=(EMyEnum)test; // VS2012 ERROR -> Cannot cast
String ^thetext=t.ToString(); // VS2012 ERROR -> Left of ToString() needs object
言うまでもなく、VS2005 では、エラーや警告なしでコンパイルされるだけでなく、期待どおりに動作します。