У меня есть структура, называемая member
. В пределах member
У меня есть массив 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
Как я могу сделать инициализацию правильно и избавиться от этого сообщения об ошибке?
Edit:
я СДЕЛАНО мой вопрос более ясным. Мне нужно скомпилировать эту программу на старшем компиляторе, и флаг -std=c++0x
не будет доступен мне. Как я могу сделать это правильно, не используя флаг.
Это говорит вам, что делать, используйте '-std = C++ 0x' флаг компиляции. –
@Als Мне не нужно устанавливать этот флаг. Кажется, что я делаю инициализацию неправильно. Я должен запустить это на другом компиляторе, где '-std = C++ 0x' недоступен. –
Я думаю, что это C++ 11. ваш компилятор должен поддерживать C++ 11 для работы этого кода. – Donotalo