Sdílet prostřednictvím


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

Změna chování: nazývá "Člen1" místo "člen2"

Nemůže být vázán rvalue odkaz bez const.V předchozích verzích aplikace Visual C++ bylo možné vytvořit vazbu rvalue odkaz bez const přímé inicializace.Tento kód se nyní zobrazí upozornění.

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

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

Pokud se zobrazí toto upozornění, zkontrolujte v kódu zobrazíte, pokud je závislý na rvalues vazby na non-const odkazy.Přidání odkazu const nebo poskytnout další odkaz na const přetížení může problém vyřešit.

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

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