在向量上使用基于范围的循环时,CppCoreChecker C-Style强制转换警告

时间:2017-06-27 09:18:46

标签: c++ c++11 static-analysis cpp-core-guidelines

假设以下代码:

#include <iostream>
#include <vector>
#include <string>

int main() {
    std::vector<std::string> lines;
    lines.push_back("line");
    for (const auto& s : lines) {
        std::cout << s;
    }
}

在for循环的行中,我收到以下警告:

  

C26493不要使用执行static_cast downcast,const_cast或reinterpret_cast的C风格演员表。

有人可以解释这是从哪里来的吗?我使用Visual Studio 2017 Community Edition版本15.2。

1 个答案:

答案 0 :(得分:6)

this bug report所示,在插入std::string时,似乎只会发生basic_iostream类型。这个错误已经解决,但还没有发布,所以现在你只需要等待。