Я пытался инициализировать карту <ints, vector<ints> >
с помощью нового 0X стандарта, но я, может казаться, не получаю корректный синтаксис. Я хотел бы сделать карту с однократным въездом с key:value = 1:<3, 4>
#include <initializer_list>
#include <map>
#include <vector>
using namespace std;
map<int, vector<int> > A = {1,{3,4}};
....
Это умирает со следующей ошибкой с помощью gcc 4.4.3:
error: no matching function for call to std::map<int,std::vector<int,std::allocator<int> >,std::less<int>,std::allocator<std::pair<const int,std::vector<int,std::allocator<int> > > > >::map(<brace-enclosed initializer list>)
Править
После предложения Зубчатым колесом и добавлением дополнительной фигурной скобки это теперь компилирует с предупреждением, которое может быть избавлено от использования флага-fno-deduce-init-list. Есть ли при этом опасность?