C++ でこの機能を見つけたときは少し驚きましたが、それが起こるとは思っていませんでした。
コードは次のとおりです。
struct XY {
int x,y;
XY(int v) : x(v), y(v) {}
};
bool test1(const XY &pos){
return pos.x < pos.y;
}
bool test1(int x, int y){
return x < y;
}
void functest(){
int val = 5;
test1(val);
}
そのため、オーバーロードが存在するかどうかに関係なく、整数パラメーターを使用して関数を呼び出すことができます。同じ型のコンストラクターがあるため、XY 型関数が使用されます。そうなってほしくないのですが、どうすれば防げますか?