std::make_map?统一初始化
std::make_map? uniform initialization
以下作品:
std::map<int,int> m{{1,2}};
std::tuple<std::map<int,int>,int> tm1{m, 2};
std::tuple<std::map<int,int>,int> tm2{{{1,2}}, 2};
std::tuple<std::map<int,int>,int> tmm1 = std::make_tuple(m, 2);
以下没有:
std::tuple<std::map<int,int>,int> tmm2 = std::make_tuple({{1,2}}, 2);
有没有办法在不使用额外变量的情况下初始化由 make_tuple 生成的元组中的映射?
不,您不能只调用 make_tuple
,因为在这种情况下第一个参数将是 initializer_list。
手动指定。
std::tuple<std::map<int,int>,int> tmm2 =
std::make_tuple<std::map<int, int>>({{1,2}}, 2);
从初始化列表创建临时地图。
std::tuple<std::map<int,int>,int> tmm2 =
std::make_tuple(std::map<int, int>{{1,2}}, 2);
以下作品:
std::map<int,int> m{{1,2}};
std::tuple<std::map<int,int>,int> tm1{m, 2};
std::tuple<std::map<int,int>,int> tm2{{{1,2}}, 2};
std::tuple<std::map<int,int>,int> tmm1 = std::make_tuple(m, 2);
以下没有:
std::tuple<std::map<int,int>,int> tmm2 = std::make_tuple({{1,2}}, 2);
有没有办法在不使用额外变量的情况下初始化由 make_tuple 生成的元组中的映射?
不,您不能只调用 make_tuple
,因为在这种情况下第一个参数将是 initializer_list。
手动指定。
std::tuple<std::map<int,int>,int> tmm2 =
std::make_tuple<std::map<int, int>>({{1,2}}, 2);
从初始化列表创建临时地图。
std::tuple<std::map<int,int>,int> tmm2 =
std::make_tuple(std::map<int, int>{{1,2}}, 2);