C++ autoexp.dat不分析联合?

C++ autoexp.dat不分析联合?,c++,debugging,visual-studio-2005,C++,Debugging,Visual Studio 2005,我有一个就地向量类,定义如下: template<class T> class svectorbase { // ... protected: union { char* m_char; T* m_t; } m_elems; size_t m_maxsize; int m_elemCount; }; template<class T, size_t maxsize> class svect

我有一个就地向量类,定义如下:

template<class T>
class svectorbase
{
    // ...
protected:
    union 
    {
        char* m_char;
        T* m_t;
    } m_elems;
    size_t m_maxsize;
    int m_elemCount;
};

template<class T, size_t maxsize>
class svector : public svectorbase<T>
{
protected:
    char m_elems[sizeof(T) * maxsize]; // gets passed to base class
};
…但是当size属性正确显示时,数组中会填充
(错误):0


我可能在做一些明显与工会有关的事情,但我看不到森林。有什么想法吗?

您可以尝试显式地将m\t转换为t*:

children
(
    #array
    (
        expr : ((($T1*)($c.m_elems.m_t))[$i],
        size : $c.m_elemCount
    )
)

我现在不在开发机器附近,所以这里可能有语法错误,但希望它能让人明白这一点。

您可以尝试显式地将m\u t强制转换为t*:

children
(
    #array
    (
        expr : ((($T1*)($c.m_elems.m_t))[$i],
        size : $c.m_elemCount
    )
)

我现在不在dev机器附近,所以这里可能有语法错误,但希望它能让人理解。

在基类中有一个名为
m_elems
的成员变量,在派生类中有另一个名为
m_elems
的成员变量


$c.m_elems.m_t
中的
$c.m_elems
指的是派生类的
char
数组,而不是基类的并集。

在基类中有一个名为
m_elems
的成员变量,在派生类中还有另一个名为
m_elems
的成员变量


$c.m_elems.m_t
中的
$c.m_elems
指的是派生类的
char
数组,而不是基类的并集。

Ah!我真是个傻瓜。我在子类中更改了名称,现在可以使用了。我真的不想编辑这个wtf-y代码,但你看,啊!我真是个傻瓜。我在子类中更改了名称,现在可以使用了。我真的不想编辑这个wtf-y代码,但现在你可以开始了。以前没有见过$T1常量,很好。以前没有见过$T1常量,很好。