Инициализировать значения массива, который находится в структуре - PullRequest
1 голос
/ 29 февраля 2012

У меня есть структура под названием membermember у меня есть массив std::string с именем months, который я хотел бы инициализировать значениями по умолчанию.Вот как я это делаю в настоящее время:

template <typenameT>                                                                                               
struct member                                                                                                       
{                                                                                                                   

    std::string months[12];                                                                                         
    std::string name;                                                                                               
    T hours_worked[12];                                                                                             
    T dues[12];                                                                                                     

    member() : months{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} {};    
};

Однако всякий раз, когда я компилирую, я получаю это предупреждение:

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

Как я могу правильно выполнить инициализацию и избавиться от этогосообщение об ошибке?

Редактировать:

Я должен был сделать мой вопрос более ясным.Мне нужно скомпилировать эту программу на более старом компиляторе, и опция флага -std=c++0x не будет мне доступна.Как я могу сделать это правильно, не используя флаг.

1 Ответ

2 голосов
/ 29 февраля 2012

Это говорит вам в предупреждении. Попробуйте добавить -std=c++0x к аргументам g ++. Если вы хотите использовать это в старом компиляторе, вы не можете использовать списки инициализатора так, как вы делаете.

Вместо этого вы можете изменить member () на что-то вроде

member()
{
  months[0] = "January";
  months[1] = "February";
  ...//etc
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...