Я должен заполнить std::vector
элементами типа struct MHD_OptionItem
.
Эта структура имеет такую реализацию:
struct MHD_OptionItem
{
enum MHD_OPTION option;
intptr_t value;
void *ptr_value;
};
Я пробовал так:
vector<struct MHD_OptionItem> iov;
if(...)
iov.push_back({ MHD_OPTION_NOTIFY_COMPLETED, requestCompleted, NULL });
if(...)
iov.push_back({ MHD_OPTION_CONNECTION_TIMEOUT, connectionTimeout });
[....]
но компилятор g ++, как и ожидалось, говорит мне:
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
Я знаю, что могу инициализировать временную структуру и затем передать ее в вектор, но этот метод мне кажется неэффективным и не таким элегантным.
Я не могу изменить структуру, вставляя конструктор, потому что это не мой код, а включенная библиотека.
Существует элегантный способ сделать это без использования синтаксиса c ++ 0x?