小编peb*_*ach的帖子

std :: initializer_list类型扣除

最近我写了一个非常简单的课.

class C
{
public:
    void AddString(std::initializer_list<std::pair<const char*,int>> x)
    {
          //irrelevant
    }
};

int main()
 {
           C c;
           c.AddString({ {"1",1}, {"2", 2}, {"3", 3} });
           .... //other unimportant stuff
           return 0;
 }
Run Code Online (Sandbox Code Playgroud)

令我惊喜的是,它编译并正常工作.有人可以向我解释一下编译器如何能够推断出嵌套的支撑初始化器是为了std::pair什么?我正在使用MSVS 2013.

c++ initializer-list c++11 list-initialization type-deduction

8
推荐指数
1
解决办法
519
查看次数