Sdílet prostřednictvím


C4350 (úroveň 1) upozornění kompilátoru

Změna chování: "Člen1" nazývá namísto "member2"

Odkaz mimo const nemůže být vázán rvalue.V předchozích verzích aplikace Visual C++ bylo možné svázat rvalue odkaz bez const přímé inicializace.Tento kód nyní umožňuje upozornění.

Z důvodu zpětné kompatibility je stále možné svázat rvalues odkazy mimo const, ale standardní jsou upřednostňovány, kdykoli je to možné.

Toto upozornění představuje změnu chování z Visual C++.NET 2002 kompilátoru.Pokud je povolena, toto upozornění může případně uvedeny pro správný kód.Například může být mu při použití std::auto_ptr šablonu třídy.

Pokud se toto upozornění, prozkoumejte kódu zda závisí vazby rvalues než const odkazy.Přidání const referenční nebo poskytující další odkaz const přetížení může problém vyřešit.

Ve výchozím nastavení je vypnuto upozornění.Další informace naleznete v tématu Kompilátoru upozornění, že jsou mimo standardně.

Následující ukázka generuje 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
}