J'ai un morceau de code qui ressemble à la suivante. Disons que c'est dans un fichier nommé example.cpp
#include <fstream>
#include <string> // line added after edit for clarity
int main() {
std::string filename = "input.txt";
std::ifstream in(filename);
return 0;
}
Sur un ordinateur windows, si je tape dans l' cmd
la commande g++ example.cpp
, ce sera un échec. Il ya une longue liste d'erreurs je pense surtout que grâce à l'éditeur de liens se plaindre de ne pas être en mesure de convertir string
de const char*
.
Mais si je lance le compilateur à l'aide d'un argument supplémentaire comme suit: g++ -std=c++17 example.cpp
,, elle compile et fonctionne bien avec pas de problèmes.
Ce qui se passe quand je lance l'ancienne commande? Je devine un défaut de la version standard du C++ compilateur est appelée, mais je ne sais pas qui? Et en tant que programmeur/développeur, dois-je toujours utiliser la dernière commande avec l'argument supplémentaire?