具有一个元素的initializer_list

时间:2019-04-16 04:10:02

标签: c++ initializer-list

#include <vector>
#include <iostream>

class Obj{
    int a = 6;
};

void func(const std::vector<Obj>& a) {
    std::cout << "here" << std::endl;
}

void func(const Obj& a) {
    std::cout << "there" << std::endl;
}

int main() {
    Obj obj, obj2;
    func({obj});
    func({obj, obj2});
}

预期输出:

here
here

实际输出:

there
here

似乎{obj}不是初始化矢量,而是初始化一个对象。我猜要初始化的类型有一些优先顺序。如何精确控制它?

(使用g ++(Ubuntu 8.3.0-6ubuntu1)8.3.0编译的示例。)

0 个答案:

没有答案