在向量上使用基于范围的 for 循环时,CppCoreChecker C 样式投射警告
CppCoreChecker C-Style cast warning when using range based for loop on vector
假设以下代码:
#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 Don't use C-style casts that would perform a static_cast downcast, const_cast, or reinterpret_cast.
有人可以解释这是从哪里来的吗?我正在使用 Visual Studio 2017 Community Edition 版本 15.2。
正如在 this bug report 中看到的那样,当插入到 basic_iostream
中时,它似乎只发生在 std::string
类型中。此错误已解决,但尚未发布,所以现在您只能等待。
假设以下代码:
#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 Don't use C-style casts that would perform a static_cast downcast, const_cast, or reinterpret_cast.
有人可以解释这是从哪里来的吗?我正在使用 Visual Studio 2017 Community Edition 版本 15.2。
正如在 this bug report 中看到的那样,当插入到 basic_iostream
中时,它似乎只发生在 std::string
类型中。此错误已解决,但尚未发布,所以现在您只能等待。