2017-01-05 2 views
-2

Je reçois l'erreur: 'stoi' n'a pas été déclaré dans cette portée.erreur: 'stoi' n'a pas été déclaré dans cette portée (Code :: Blocs 16.01 sous Windows 10)

#include <string> 
using namespace std; 
... 
int x; 
x = stoi(arg[0]); 

Je courais Code :: Blocks 16.01 sur Windows 10 avec le std = C++ 11 réglage.

Je n'ai pas trouvé aucune information utile sur cette page: ‘stoi’ was not declared in this scope

j'ai vu quelque part que la mise à niveau gcc peut résoudre ce problème, mais je ne trouve pas une installation appropriée sur la page: https://mingw-w64.org/doku.php/download

Le même code fonctionne correctement dans Code :: Blocks 13.12 sur Linux Mint 17.3.

Existe-t-il une solution recommandée pour ce problème? Cela peut-il être corrigé en utilisant la version 64 bits de MinGW (en supposant qu'elle soit compatible avec Code :: Blocks 16.01)?

Mise à jour il existe une solution, en utilisant atoi et c_str à la place:

x = atoi(arg[0].c_str()); 
+1

Avez-vous activé C++ 11? Avez-vous '#include '? – NathanOliver

+2

Code :: Blocks est un IDE. Windows est un système d'exploitation. Quelle est votre version * compilateur *? –

+0

L'indice est dans la question! En d'autres termes, quel que soit le gcc livré avec Code Blocks 16.01, je crois que c'est gcc 4.8, mais ne me citez pas là-dessus. – tyebillion

Répondre

2

Je crois que c'est un bug avec MinGW. Pour plus d'informations, consultez this StackOverflow post. Plus précisément, la réponse de DRH.

+2

Si vous pensez que la réponse est sur une autre question, vous devriez marquer cette question comme une copie. – NathanOliver

+0

@NathanOliver Je ne crois pas avoir assez de réputation pour signaler les réponses en double - sinon je l'aurais certainement fait. – NoseKnowsAll

+0

Bien sûr, vous pouvez. [Vous pouvez signaler des questions à 15 rep] (http://stackoverflow.com/help/privileges/flag-posts) – NathanOliver