c++ - cppcheck:使用/typedef 的语法错误
问题描述
我的 cppcheck 和 using/typedef 声明有语法错误。我有一个包含的结构
struct inferior
{
using visitor = int;
template <typename T>
bool operator()(const T &a, const T &b) const
{
return a < b;
}
};
int main() {
return 0;
}
当我运行cppcheck file.cpp
输出是
[file.cpp:5]: (error) syntax error
没有进一步的输出。
如果我删除using
声明,错误就会消失。
我想知道这是否是正常行为cppcheck
。using
声明没有被直接使用。(这是一个using
重新定义 int 的简化示例)。
如果需要一些上下文:在我的应用程序中,using
定义了一个访问者的特化OnlyArithmetic
,如下所示:using visitor = OnlyArithmetic<inferior>
使用元编程技术过滤非算术类型,然后我在劣质::访问者() 上调用 std::visit。我使用这个技巧不重复我需要的所有结构的过滤部分(下级,上级,...)。
[编辑] 使用 cppcheck 1.88
解决方案
这个问题是在 Cppcheck 1.86 中引入的,并在 1.89 版中得到修复。
推荐阅读
- javascript - 调整大小
使用 srcdoc? - python - 如何从符合 doctest PEP8 的标准中排长队?
- python - python的硒替代品?访问 Web 元素的最快方式
- java - 如何修复命令提示符中的 java.lang.NoClassDefFoundError?
- attributes - 如何将不推荐使用的属性应用于 using 语句
- javascript - 每次引用变量时如何执行布尔比较
- scrapy - 强制关闭爬虫蜘蛛
- artifactory - jfrog cli 只获取工件的名称?
- python - 为什么用字符串和 timedeltas 转置 DataFrame 会转换 dtype?
- geolocation - AMP by Example 的基于地理位置的同意流程是否存在故障?