Advertencia del compilador (nivel 1) C4350Compiler Warning (level 1) C4350

cambio de comportamiento: se llamó a 'miembro1' en lugar de a 'miembro2'behavior change: 'member1' called instead of 'member2'

No se puede enlazar un valor r a una referencia no const.An rvalue cannot be bound to a non-const reference. En las versiones de C++ visual anteriores a visual Studio 2003, era posible enlazar un valor r a una referencia no const en una inicialización directa.In versions of Visual C++ before Visual Studio 2003, it was possible to bind an rvalue to a non-const reference in a direct initialization. Este código emite ahora una advertencia.This code now gives a warning.

Por compatibilidad con versiones anteriores, todavía es posible enlazar rvalues a referencias no const, pero se prefieren las conversiones estándar siempre que sea posible.For backward compatibility, it is still possible to bind rvalues to non-const references, but standard conversions are preferred wherever possible.

Esta advertencia representa un cambio de comportamiento del compilador de Visual C++ .net 2002.This warning represents a change of behavior from the Visual C++ .NET 2002 compiler. Si está habilitada, es posible que se proporcione esta advertencia para el código correcto.If enabled, this warning could possibly be given for correct code. Por ejemplo, se podría proporcionar al usar la plantilla de clase STD:: auto_ptr .For example, it could be given when using the std::auto_ptr class template.

Si recibe esta advertencia, examine el código para ver si depende del enlace de rvalues a referencias no const.If you get this warning, examine your code to see if it depends on binding rvalues to non-const references. Agregar un const a la referencia o proporcionar una sobrecarga adicional const-Reference puede resolver el problema.Adding a const to the reference or providing a additional const-reference overload may solve the problem.

De forma predeterminada, esta advertencia está desactivada.This warning is off by default. Para obtener más información, consulte Compiler Warnings That Are Off by Default.For more information, see Compiler Warnings That Are Off by Default.

En el ejemplo siguiente se genera C4350:The following sample generates C4350:

// C4350.cpp
// compile with: /W1
#pragma warning (default : 4350)
class A {};

class B
{
public:
   B(B&){}
   // try the following instead:
   // B(const B&){}

   B(A){}
   operator A(){ return A();}
};

B source() { return A(); }

int main()
{
   B ap(source());   // C4350
}