Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4913

Operator binarny zdefiniowany przez użytkownika "", nie istnieje, ale nie można przekonwertować wszystkich operandów, domyślnego wbudowanego operatora binarnego "", używanego

Wywołanie wbudowanego operatora przecinka wystąpiło w programie, który miał również przeciążony operator przecinka; konwersja, którą uważasz, że mogła wystąpić, nie.

Poniższy przykład kodu generuje kod 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.
}