#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编译的示例。)