2017-06-27 1 views
7

Supposons que le code suivant:CppCoreChecker C-Style avertissement lancé lors de l'utilisation gamme à base de boucle sur le vecteur

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

Sur la ligne de la boucle, je reçois l'avertissement suivant:

C26493 Don N'utilisez pas de conversions de type C qui effectueraient un downcast static_cast, const_cast ou reinterpret_cast.

Quelqu'un peut-il expliquer d'où cela vient-il? Im en utilisant Visual Studio 2017 Community Edition Version 15.2.

+0

Cela ressemble sûrement à un bogue VS. –

Répondre

6

Comme vu dans this bug report il semble se produire uniquement pour le type std::string lors de l'insertion dans un basic_iostream. Ce bug a été résolu mais n'a pas encore été publié. Pour l'instant, vous devrez juste attendre.