blok rzutowany na struct - w standardzie?

0

Witam wszystkich. Mam malutkie pytanie odnośnie kodu kompilowanego pod MingW :(

#include <iostream>
#include <string>

using namespace std;

typedef struct
{
    int x;
    int y;
    string t;
} Coord;

void x( Coord c )
{
    cout << c.x;
    cout << endl;
    cout << c.y;
    cout << endl;
    cout << "\"" << c.t << "\"" << endl;
    cout << "-------------------------" << std::endl;
}

int main()
{
    Coord c;
    c.t = "Test";
    c.x = 23;
    c.y = 35;

    x(c);

    x( (Coord){2, 2} );

    return 0;
}

Pytanie brzmi: czy takie wywolanie instrukcji: " x( (Coord){2, 2} ); " jest prawidłowe? Visual C++ 2008 EE rzuca się właśnie przy tej instrukcji.

0

Nie jest prawidłowe.

0

Tworzenie w taki sposób struktur tymczasowych jest rozszerzeniem języka wprowadzonym przez programistów GCC. Zamiast (Coord){1,2} napisz Coord(1,2). I napisz konstruktor dla struktury.

1 użytkowników online, w tym zalogowanych: 0, gości: 1