Ich möchte überprüfen, ob meine C++/Cli verwaltet auto_gcroot ist null oder nicht. Hier ist, wie ich vorgegangen:So überprüfen Sie auto_gcroot Objekt für nullptr
auto_gcroot<RefClassA^> m_a;
if (static_cast<RefClassA^>(m_a) != nullptr)
{
.....
}
Das Problem ist, dass ich einen Fehler:
‚Keine geeignete Konvertierung von 'auto_gcroot zum Objekt ^' existiert
Ich kann dies nicht auf VS2012 reproduzieren. Wenn ich "String" für "RefClassA" ersetze, kompiliert es sich gut. Haben Sie andere Fehler, die die Ursache sein könnten? –
Es ist ein intelligenter Zeigertyp, nur wenn 'if (m_a) {} 'die Aufgabe erledigt. Aber das stört den IntelliSense-Parser, 'wenn (!! m_a) {}' ist vielleicht ein bisschen zu grody. 'if (m_a.get()) {}' ist in Ordnung. –