Initializing std::pair via std::initializer_list doesn't work while initializing an std::array?

Viewed 2243

I'd like to initialize a std::array of std::pair via std::initializer_list.

pair<int, int> p = {3,4};//ok
array<pair<char,char>, 3> p = { make_pair('{','}'), make_pair('[',']'), make_pair('(',')') };//ok
array<pair<char,char>, 3> p = { {'{','}'}, {'[',']'}, {'(',')'} };//not ok

Why doesn't my third option work? Moreover this works fine, as well:

vector<pair<char, char>> brackets = { {'{','}'}, {'[',']'}, {'(',')'} };
1 Answers
Related