C++ std::vector visualizer不';t在std::vector上不能正常工作<;boost::variant>;

C++ std::vector visualizer不';t在std::vector上不能正常工作<;boost::variant>;,c++,visual-studio,boost,debugging,C++,Visual Studio,Boost,Debugging,如果我有一个std::vector,VS2008 autoexp.dat文件中的visual studio std::vector可视化工具似乎无法工作。它确实适用于我尝试过的其他类型的向量(例如std::vector,std::vector) 以下是可视化工具代码: std::vector<*>{ children ( #array ( expr : ($e._Myfirst)[$i], size : $e._My

如果我有一个
std::vector
,VS2008 autoexp.dat文件中的visual studio std::vector可视化工具似乎无法工作。它确实适用于我尝试过的其他类型的向量(例如
std::vector
std::vector

以下是可视化工具代码:

std::vector<*>{
children
(
    #array
    (
        expr :      ($e._Myfirst)[$i],
        size :      $e._Mylast-$e._Myfirst
    )
)
preview
(
    #(
        "[", $e._Mylast - $e._Myfirst , "](",
        #array
        (
            expr :  ($e._Myfirst)[$i],
            size :  $e._Mylast-$e._Myfirst
        ),
        ")"
    )

)
}
子元素,应该是向量项,是实际的向量成员。就好像std::vector可视化工具不存在一样

我拍了一张手表窗口的截图。您可以看到它如何显示错误的
std::vector
,然后正确显示接下来的两个向量:

有人知道是什么导致了这种情况,以及如何阻止它的发生吗


谢谢

这似乎是一个与类型名称大小相关的bug。。。variant生成具有很长名称的类型

我做了一些测试,似乎限制是名称大小为497个字符的结构。下面的代码复制错误。。。以结构名称的最后一个字符为例,它可以正常工作

struct abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq
{
};

int main()
{
    std::vector< abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq > test2;

    test2.resize(10);

    return 0;
}
structABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVWXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQ
{
};
int main()
{
标准::载体test2;
测试2.调整大小(10);
返回0;
}

请随时报告该错误,它似乎与类型名称的大小有关。。。variant生成具有很长名称的类型

我做了一些测试,似乎限制是名称大小为497个字符的结构。下面的代码复制错误。。。以结构名称的最后一个字符为例,它可以正常工作

struct abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq
{
};

int main()
{
    std::vector< abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq > test2;

    test2.resize(10);

    return 0;
}
structABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWXYZ012345 ABCDEFGHIjKLMNOPQRSTUVXYZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345 ABCDEFGHIjKLMNOPQRSTUVWZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQRSTUVWXYZ012345ABCDEFGHIjKLMNOPQRSTUVXYZ012345ABCDEFGHIjKLMNOPQ
{
};
int main()
{
标准::载体test2;
测试2.调整大小(10);
返回0;
}

请随时在

Oh上报告错误。真烦人。非常感谢你解开了这个谜!哦真烦人。非常感谢你解开了这个谜!