在visual-studio中避免使用令人讨厌的警告C4100

时间:2016-04-01 07:23:11

标签: c++ visual-studio warnings

我正在使用visual studio 2013并在这种情况下收到很多C4100警告

void destroy(pointer p) {//warning C4100
     p->~T(); 
}

我不明白为什么。我的问题如果没有#pragma警告(平台独立性,可读性),我怎么能避免这个警告?

1 个答案:

答案 0 :(得分:4)

这是一个Visual Studio bug/limitation

  

当代码在原始类型的其他未引用参数上调用析构函数时,也可​​以发出C4100。 这是Visual C ++编译器的限制。

应该有bug报告,但我现在无法找到它。

<强>解决方法:

  1. 参考p否则:

    void destroy(pointer p) {
        p;         //resolve warning C4100
        p->~T(); 
    }
    
  2. 禁用警告:

    • 在没有/W4
    • 的情况下编译
    • 使用/wd4100
    • 进行编译
    • 添加#pragma warning(disable : 4100)
  3. 使用其他编译器。