2017-06-27 31 views
7

Zakładamy następujący kod:CppCoreChecker C-Style rzucić ostrzeżenie przy korzystaniu zakres oparty na pętli na wektorze

#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; 
    } 
} 

Na linii do pętli uzyskać następujące ostrzeżenie:

C26493 Don używają rzutów w stylu C, które wykonałyby downcast static_cast, const_cast lub reinterpret_cast.

Czy ktoś może wyjaśnić, skąd to pochodzi? Im przy użyciu Visual Studio 2017 Community Edition wersja 15.2.

+0

To na pewno wygląda jak błąd VS. –

Odpowiedz

6

Jak widać w this bug report wydaje się, że dzieje się tak tylko dla typu std::string podczas wstawiania do basic_iostream. Ten błąd został rozwiązany, ale nie został jeszcze wydany, więc na razie musisz po prostu poczekać.