{"a", 1}
является фигурным списком инициализации , и при передаче в функцию выполняется copy-list-initialization (введено в C ++ 11).
function( { arg1, arg2, ... } ) (7)
7) в выражении вызова функции, при этом в качестве аргумента используется braced-init-list, а инициализация списка инициализирует параметр функции
Given map<string, int> m;
и m.insert({"a", 1});
, std::map::insert
а std::pair<const string, int>
; поэтому {"a", 1}
используется для инициализации временного std::pair
, который передается в .insert()
. Временный std::pair
инициализируется его конструктором ; инициализация его членов first
до "a"
и second
до 1
.