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
}