Si j'ai un définis par l'utilisateur operator+()
comme dans:
class A
{
public:
A operator+(A)
{
return A();
}
};
Puis le suivant fonctionne comme prévu:
A a = A() + A();
mais g++-4.7 donne un message d'erreur suivantes:
A a = (A()) + A();
Le message d'erreur en particulier, est - error: no match for ‘operator+' in ‘+A()'
.
Il ressemble à l' (A())
est ignorée dans l'expression.
Ma question est: est - A a = (A()) + A();
censé compiler et si non, pourquoi pas?
Remarque: cétait pour moi, quand je n' #define X (Identity())
, puis a essayé de faire X + X
.