如何检查 auto_gcroot 对象的 nullptr

How to check auto_gcroot object for nullptr

我想检查我的 C++/Cli 管理 auto_gcroot 是否为空。以下是我的处理方式:

auto_gcroot<RefClassA^> m_a;

if (static_cast<RefClassA^>(m_a) != nullptr)
    {
        .....
    }

问题是我得到一个错误:

'No suitable conversion from 'auto_gcroot to object^ exists'

正如我在评论中所说,我无法在 VS2012 上重现它。

但是,auto_gcroot has a get 方法将 returns 对象作为普通引用。您应该能够将其与 nullptr.

进行比较
msclr::auto_gcroot<String^> m_a;

if (m_a.get() != nullptr)
{
    // ...
}