问题描述
为什么这段代码会编译?
#include <string>
#include <variant>
#include <map>
void foo(std::map<int,std::variant<int,std::string>> map)
{}
int main()
{
foo({{1,"1"},{2,2}});
}
我们有 {{1,2}}
的东西,std::map
应该用它来初始化。它可能与接受 std::map
和列表初始化的 std::initializer_list
构造函数有关。但我想知道 {{1,2}}
这个东西是怎么编译的?它有什么类型?在这种情况下,重载解析是如何工作的?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)