Zit*_*rax 8 c++ compiler-errors g++ clang++
在C++中使用模板时,任何错误都会导致编译器发出大量输出.在大多数情况下,当我处理某些信息时,大部分信息都是噪音,我必须滚动查找我感兴趣的信息,例如:
std::string,写为std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >或扩展的typedef/alias声明.我更希望将它们展开以便于阅读.是否有可能在g ++或clang中减少任何这种更短/更简单的输出?
显然,信息可能很重要,但是我宁愿再次编译更详细,默认情况下保持简短.
不幸的是,目前无法解决这个问题.C++ 20通过引入概念来解决这个问题,其中模板可以具有除了二进制布局之外的所有内容都受限制的抽象定义.违反这些定义将提供简单的错误.
目前,我深入研究这些细节并且我已经习惯了.我目前正在处理一个有5个模板参数的程序.这一切都是为了习惯它并训练你的眼睛来解析内容.
但是,如果你真的陷入困境,我建议的一个解决方案就是将所有相关的错误输出复制到某个编辑器,并进行查找和替换以简化单个表达式,使每个表达式越来越小,直到它变得可读.正则表达式的良好技能也可能有所帮助.在Notepad ++(或Linux上的Notepadqq)中,您可以找到正则表达式并使用捕获组代替\1第一个捕获组,\2第二个等等.
所以,底线:直到C++ 20,除了你自己发明的东西之外,没有干净的解决方案.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |