c++ - 减少 STL 类型调试 View 中的噪音

标签 c++ visual-studio stl

TL;DR:是否可以为开发人员清除来自 STL 的长类型名称的 visual studio 调试器/intellisense/编译器输出中显示的类型信息?

C++, Visual Studio

考虑代码:

std::map<int, int> m;

考虑

中的类型信息
  1. 监 window 口 watch window

  2. 将鼠标悬停在标识符上 mouse over

  3. Intellisense 提示(方法的参数,图像格式为简洁) method parameter

  4. (如#3)在您键入名称时对标识符进行智能感知补全 intellisense

这些案例中的每一个都显示了 STL 容器的类型描述是一长串不常需要的细节。

我注意到 visual studio 2011 现在显示 string作为std::string (一个了不起的改进),而不是 std::basic_string<char, std::char_traits<char>, std::allocator<char>> - 但我测试过的其他 STL 类型不会出现这种情况。

我知道它为什么显示该信息,我知道该信息是正确的,并且在某些情况下非常重要。我的看法是,大多数时候,开发人员根本不在乎,map<int, int>就足够了。有什么方法可以格式化或配置输出以减少噪音?

最佳答案

您正在寻找的工具 STLFilt (http://www.bdsoft.com/tools/STLfilt.html)。

礼貌:http://yosefk.com/c++fqa/templates.html#fqa-35.17

虽然神秘的警告/错误对于初学者来说解码起来可能很麻烦,但如果您想成为专业人士,我建议您习惯它。

关于c++ - 减少 STL 类型调试 View 中的噪音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368748/

相关文章:

c++ - 使用 STL 迭代器封装 vector 是一种好习惯吗?如果是?怎么做到的?

c++ - 构建具有强制限制的操作系统层?

c++ - wstring_buffer 没有给出输出

c++ - 0在纯虚函数中是什么意思

visual-studio - 将 Visual Studio 2015 解决方案升级到 Visual Studio 2017

c++ - std::map<string, class> 打印键的值

c++ - 部分模板特化没有给出正确的结果

visual-studio - 在 visual studio 2017 中安装 xunit.net

c# - 集成语言服务 (MPF) 和编辑器扩展 (MEF)

c++ - 为什么将不存在的键应用于 map::find 会在 C++ 中返回具有第一个值映射大小的迭代器?