Perché la conversione dell'istanza in const int&
è ambigua qui?Conversione ambigua a riferimento
struct CL
{
operator const int&()
{
}
operator int&()
{
}
};
void fnc(const int&)
{
}
int main()
{
CL cl;
fnc(cl);
}
Ci sono due modi:
1). cl.operator const int&()
porta alla conversione definita dall'utente
2). cl.operator int&()
porta alla conversione definita dall'utente e quindi alla conversione della qualifica (int&
a const int&
)
Il primo modo è meglio della seconda, no? Ho visto Standard, ma non ho trovato nulla.