C++ cli 如何检查nullptr的自动根对象

C++ cli 如何检查nullptr的自动根对象,c++-cli,C++ Cli,我想检查我的C++/Cli管理的自动根目录是否为空。下面是我如何进行的: auto_gcroot<RefClassA^> m_a; if (static_cast<RefClassA^>(m_a) != nullptr) { ..... } auto_gcroot m_a; 如果(静态_-cast(m_-a)!=nullptr) { ..... } 问题是我得到了一个错误: '不存在从'auto_gcroot'到对象^ 正如我在评论中

我想检查我的C++/Cli管理的自动根目录是否为空。下面是我如何进行的:

auto_gcroot<RefClassA^> m_a;

if (static_cast<RefClassA^>(m_a) != nullptr)
    {
        .....
    }
auto_gcroot m_a;
如果(静态_-cast(m_-a)!=nullptr)
{
.....
}
问题是我得到了一个错误:

'不存在从'auto_gcroot'到对象^


正如我在评论中所说,我无法在VS2012上重现这一点

但是,有一个方法将对象作为普通引用返回。您应该能够将其与
nullptr
进行比较

msclr::auto_gcroot<String^> m_a;

if (m_a.get() != nullptr)
{
    // ...
}
msclr::auto_gcroot m_a;
如果(m_a.get()!=nullptr)
{
// ...
}

正如我在评论中所说,我无法在VS2012上重现这一点

但是,有一个方法将对象作为普通引用返回。您应该能够将其与
nullptr
进行比较

msclr::auto_gcroot<String^> m_a;

if (m_a.get() != nullptr)
{
    // ...
}
msclr::auto_gcroot m_a;
如果(m_a.get()!=nullptr)
{
// ...
}

我无法在VS2012上复制此内容。当我用
RefClassA
替换
String
时,它编译得很好。您是否有任何其他可能是根本原因的错误?这是一种智能指针类型,只要(m_a){}完成任务即可。但这让IntelliSense解析器感到不安,
if(!!m_a){}
可能有点难琢磨<代码>如果(m_a.get()){}没有问题。我无法在VS2012上重现这一点。当我用
RefClassA
替换
String
时,它编译得很好。您是否有任何其他可能是根本原因的错误?这是一种智能指针类型,只要(m_a){}完成任务即可。但这让IntelliSense解析器感到不安,
if(!!m_a){}
可能有点难琢磨<代码>如果(m_a.get()){}没有问题。