У меня есть структура:Инициализировать массив структуры с векторами
enum VAR;
typedef void (*VoidF)();
struct Function
{
const char* name;
VAR return_type;
vector<VAR> args;
VoidF f;
};
И я могу инициализировать его, как это в VS2013:
const Function funcs[] = {
"print", V_VOID, { V_STRING }, f_print,
"pause", V_VOID, {}, f_pause,
"getstr", V_STRING, {}, f_getstr,
"getint", V_INT, {}, f_getint,
"pow", V_INT, { V_FLOAT, V_FLOAT }, f_pow,
"getfloat", V_FLOAT, {}, f_getfloat
};
Но мне нужно, чтобы это работало в VS2008 тоже. Есть ли другой способ, который затем меняет это на функцию и толкает векторные элементы один за другим? У меня есть этот код на git, и ему нужно работать с обеими версиями.
VS2008 не поддерживает функции от C++ 11.
Дополнительные фигурные скобки, может быть? '{" print ", V_VOID, {V_STRING}, f_print}, // и т. д.' –
Те же ошибки C2552: 'Функция :: args': неагрегаты не могут быть инициализированы с помощью списка инициализаторов 'std :: vector <_Ty>': Типы с базой не объединены с [_Ty = VAR] – Tomashu
Вам нужно добавить фигурные скобки вокруг каждой строки - http://melpon.org/wandbox/permlink/wAELo1XDzUr09AI3 – 0x499602D2