C ++ Initialization of an arrangement of structures

2

this is my code:

struct objeto
{
    string etiqueta;
    string tipo;
    string descripcion;
    int codigo;
    int cantidad;
    bool existe;
}
articulo[21]= //Obviamente todos tendran datos diferentes
{
    articulo[0]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[1]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[2]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[3]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[4]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[5]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[6]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[7]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[8]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[10]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[11]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[12]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[13]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[14]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[15]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[16]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[17]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[18]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[19]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    articulo[20]={"Atlas Humano","Libro","Libro de anatomia humana",0,5,true}
};

In a program that I am doing previously I am defining all the data of each object of the article arrangement of the structure

But the compiler gives me a compatibility warning, how do I fix it?

    
asked by Malthael 18.02.2017 в 23:32
source

1 answer

3

Without modifying its code, first of all you can put the complete error message could be something like this:

  

warning: extended initializer lists only available with -std = c ++ 11 or   -std = gnu ++ 11

In the case of being like this, try to use the flag -std = c ++ 11 or - std = gnu ++ 11 , or the one that corresponds , to indicate to the compiler that he wants to work with that C ++ standard.

I think int *nombre = new int{1,2,3}; for example if you need support for C ++ 11 as a minimum, but int nombre[] = int{1,2,3}; do not need 1 .

Maybe part of the error is this in addition to the above, try this way:

articulo[21]= //Obviamente todos tendran datos diferentes
{
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true},
    {"Atlas Humano","Libro","Libro de anatomia humana",0,5,true}
};

You can look at this example in ideone:

link

1 I have my doubts and I do not have access to C ++ right now, if it does not work or is not correct, and you can communicate it to me through a comment, to eliminate or adjust the question It would be appreciated.

Update:

In this online ide you have the option of c ++ 98 and the code works well, as I commented:

link

    
answered by 18.02.2017 / 23:51
source