[英]std::vector visualizer doesn't work properly on std::vector<boost::variant>
如果我有std::vector<boost::variant<...>>
,则VS2008 autoexp.dat文件中的visual studio std :: vector可视化工具似乎不起作用。 它确实适用于我尝试过的其他类型的向量(例如std::vector<int>
, std::vector<boost::shared_ptr<..>>
)
这是可视化工具代码:
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
),
")"
)
)
}
预览不显示项目数量和项目值,而是显示
{_Myfirst= _Mylast= _Myend= }
而应该作为向量项的子代是实际的向量成员。 好像std :: vector可视化工具不存在。
我拍摄了监视窗口的屏幕截图。 您会看到它如何错误地显示std::vector<boost::variant<int, std::string>>
,然后正确显示接下来的两个向量: 超链接至屏幕截图
有谁知道这是什么原因以及如何阻止它发生?
谢谢!
这似乎是与您的类型名称大小有关的错误... boost :: variant生成具有很长名称的类型。
我进行了一些测试,似乎限制是名称大小为497个字符的结构。 以下代码重现该错误...采用结构名称的最后一个字符,它可以正常工作!
struct abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq
{
};
int main()
{
std::vector< abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopqrstuvwxyz012345abcdefghijklmnopq > test2;
test2.resize(10);
return 0;
}
随时在http://connect.microsoft.com/上报告该错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.