草庐IT

initlializer

全部标签

c++ - 函数模板推导和initlializer_list

我有以下函数模板:templatevoidf(std::initializer_list>il){//...}我调用函数如下:f({std::pair(1,2),std::pair(3,4)});//(a)而且效果很好。但是,如果我尝试按如下方式调用它:f({{1,2},{3,4}});//(b)它无法推断出正确的类型,我得到了一个编译错误:'nomatchingfunctionforcallto'f()notecandidateis:note:templatevoidf(std::initializer_list>)'如果我这样调用它:f({std::pair(1,2),{3,4}}