Avertissement du compilateur (niveau 4) C4913

l'opérateur binaire défini par l'utilisateur ',' existe mais aucune surcharge n'a pu convertir tous les opérandes, opérateur binaire intégré par défaut ',' utilisé

Un appel à l’opérateur virgule intégré s’est produit dans un programme où figure également un opérateur virgule surchargé. Une conversion censée être terminée n’a pas été effectuée.

Le code suivant génère l’avertissement C4913 :

// C4913.cpp
// compile with: /W4
struct A
{
};

struct S
{
};

struct B
{
   // B() { }
   // B(S &s) { s; }
};

B operator , (A a, B b)
{
   a;
   return b;
}

int main()
{
   A a;
   B b;
   S s;

   a, b;   // OK calls user defined operator
   a, s;   // C4913 uses builtin comma operator
           // uncomment the conversion code in B to resolve.
}