gpt4 book ai didi

c++ - autoexp.dat 不解析 union ?

转载 作者:行者123 更新时间:2023-11-30 01:31:19 26 4
gpt4 key购买 nike

我有一个像这样定义的就地 vector 类:

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
};

(不要问他们为什么不直接创建一个T m_array[maxsize]……唉)

我试图在 VS2005 中为它创建一个 autoexp.dat 条目,因为该结构很难在调试器中查看。我已经做到了:

svector<*>{
preview
(
#("size=",$e.m_elemCount,"/",$e.m_maxsize)
)
children
(
#array
(
expr : ($c.m_elems.m_t)[$i],
size : $c.m_elemCount
)
)
}

...但是虽然 size 属性显示正确,但数组中填充了 (error):0 条目。

我可能正在做一些明显与 union 有关的事情,但看不到树木的阿甘。有什么想法吗?

最佳答案

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

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

关于c++ - autoexp.dat 不解析 union ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com