Инициализация 2d массива структуры значений, вызывающая внутреннюю ошибку компилятора C1001 - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок в мире C ++ / CLI и не программировал в Windows Visual Studio в течение длительного времени (дюжина лет или около того). В любом случае, я работаю над приведением некоторых старых управляемых c ++ к последним стандартам и столкнулся с этой внутренней ошибкой C1001. Я сварил исходный код до чего-то настолько простого, насколько мог, но все еще вызывал ошибку. Я экспериментировал и нашел, по крайней мере, один способ обойти это, но подумал, есть ли что-нибудь с этим кодом, которое можно рассматривать как проблематичное c. Я ценю любую информацию, которую может предложить сообщество.

value struct testDefinition {
    int abc_;
    int testArgument_;
    int timeOut_;
};


int main()
{

    // Declare, create, and initialize a 2D managed array.
    array<int, 2>^ managed_array_2D = gcnew array<int, 2>(2, 2)
    {
        { 1, 0 },
        { 0, 1 }
    };   // No issues here

    array <testDefinition,2>^ Test = gcnew array<testDefinition,2>(2,2)
    {
        {
            {  4, 1, 2 },  //C1001 Internal compiler error on this line
            {  5, 2, 4 }
        },  
        {
            {  4, 1, 2 },
            {  5, 2, 4 }
        }
    };
}
...