Warum ist die Umwandlung von CL
Instanz in const int&
mehrdeutig hier?Mehrdeutige Konvertierung in Referenz
struct CL
{
operator const int&()
{
}
operator int&()
{
}
};
void fnc(const int&)
{
}
int main()
{
CL cl;
fnc(cl);
}
Es gibt zwei Möglichkeiten:
1). cl.operator const int&()
führt zu benutzerdefinierter Konvertierung
2). cl.operator int&()
führt zu benutzerdefinierter Konvertierung und dann Qualifizierung Umwandlung (int&
zu const int&
)
erster Weg ist besser als die zweite Art und Weise, ist es nicht? Ich habe Standard gesehen, aber nichts gefunden.