gpt4 book ai didi

linux - 具有带模板参数的函数的模板类上的 Cppcheck 语法错误

转载 作者:行者123 更新时间:2023-12-03 09:58:52 25 4
gpt4 key购买 nike

任何人都知道我如何修复这个 Cppcheck 语法错误(没有比“语法错误”更多的信息)或者如果它是误报(可能是由于使用的选项),我查看了模板教程和文档,但没有找到任何类似的用法,代码为:

template<typename T>
template<class Archive> // Here is the Cppcheck syntax error
void MyItemContainer<T>::serialize(Archive & ar, const unsigned int version)
{
....
}

我正在使用 :
  • g++ (SUSE Linux) 8.2.1 20180831 [gcc-8-branch 修订版 264010]
  • Cppcheck 1.82(这是 openSUSE Leap 15 上的最后一个可用版本),我已经成功构建了 1.89 版本,但我无法运行它,使用与 1.82 版本相同的参数我有“cppcheck:无法加载库配置文件'std。 cfg'。找不到文件”错误
  • cppcheck 命令是: cppcheck MyItemContainer.h --force --platform=unix64 --enable=warning --xml-version=2 --verbose --error-exitcode=0 --std=c++11 --language= c++

  • 谢谢

    最佳答案

    这看起来是 CppCheck 的问题/误报。代码使用正确的语法来定义模板化(在 Archive 上)类的模板化(在 T 上)成员函数。 class的使用或 typename模板签名在这里没有语义上的区别(但也许 CppCheck 绊倒了?尝试一些东西......)。

    可能是前面的某些代码无效并导致此位置出现语法错误,但这似乎不太可能。

    我在 the manual 中找不到任何有用的"template"一词。 .但鉴于 CppCheck 仍在积极开发中,您可以考虑构建一个小代码示例来重现此问题并将其提交给他们的错误跟踪器 https://trac.cppcheck.net/ .

    关于linux - 具有带模板参数的函数的模板类上的 Cppcheck 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59198305/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com