C++11 应接受向量的函数<;int>;接受int。这是错误吗?

C++11 应接受向量的函数<;int>;接受int。这是错误吗?,c++11,C++11,我编写了一个接受int值的向量的小函数 void transform(vector<int> i) { // actual code } int i = 5; transform(5); void变换(向量i){ //实际代码 } int i=5; 转化(5); 现在,如果我将一个int值传递给函数,它接受它,而不接受它 任何编译器警告。我是不是错过了一些基本的东西,或者C++为我提供了某种神奇的自动包装?p> 我使用clang编译代码,并使用-Wall启用所有警告。我

我编写了一个接受int值的
向量的小函数

void transform(vector<int> i) {
    // actual code
}

int i = 5;
transform(5);
void变换(向量i){
//实际代码
}
int i=5;
转化(5);
现在,如果我将一个int值传递给函数,它接受它,而不接受它 任何编译器警告。我是不是错过了一些基本的东西,或者C++为我提供了某种神奇的自动包装?p>
我使用clang编译代码,并使用
-Wall

启用所有警告。我认为您的
int I
是自动转换为
向量的,或者,您确定没有其他转换重载吗?这不应该真正起作用,因为没有非显式接受单个
int
参数或包含类型的单个参数。没有,函数不在其他地方出现,并且只有此单一定义,没有方法重载。。请发一封信。