2013-11-22 27 views
17

' üyesi değildir: pencerelerdecygwin g ++ std :: stoi "hatası: 'stoi' Ben std

-cygwin 1.7.25 7/32bit

-g ++ version - > g ++ (GCC) 4.8.2

-libstdC++ a -> gcc-g ++ - 4.8.2-1

bir C++ Merhaba Dünya yapmaya çalıştı.

#include <string> 

int main() 
{ 
    std::string s = "123"; 
    int i = std::stoi(s); 
} 

derleme verir:

$ g++ -std=c++11 main.cpp 
main.cpp: In function ‘int main()’: 
main.cpp:6:10: error: ‘stoi’ is not a member of ‘std’ 
    int i = std::stoi(s); 

saatlerce arandı ama hala bir çözüm bulamadık. Sorun nedir burada?

+1

Garip. Çalışması gerekiyordu ... Bu garip bir böcek gibi görünüyor. – Ali

cevap

11

Bu bir hata, belki de bazı kütüphane kodlarının cygwin'e eksik bir portu (bu bir cplusplus11 özelliği) - bazı şeylerin hepsinden sonra değiştirilmesi gerekiyor. Bildirdiğinizden emin olun.

çözeltisi tabii kolaydır: #include <cstdlib> strtol(s.c_str(),0,10);

www.cplusplus.com/.../strtol

benzer bir mingw hata derleyici ciddiye alınması değildir, aynı zamanda here

std::stoi doesn't exist in g++ 4.6.1 on MinGW

+1

da Cygwin'in en son kararlı sürümüyle bu sorunu yaşıyor, ancak to_string –

+0

cygwin v4.9.2 Windows 7/64 hala stoi yok, ancak strtol iş yapıyor –

1

bahsedilmektedir. Pencerelerde, her zaman güncel tutulduğu için muhtemelen en iyi ihtimalle görsel stüdyosu kullanmanızdır. Buradaki hata, makro hataların başlaması yanlıştır. Sorun iomanip.h ve iosbase'den başlıyor. Yani tüm kodları değiştirmek zorunda kalacaklar. Bunun için kullanıcı tarafından yapılmış yamalar var, ancak orijinal kopyalardan daha fazla hata içerebileceğinden bunlara hiç güvenmem. Ama bu size bağlı, ben sadece görsel stüdyo ekspres baskı ile sopa.

0

stoi sadece benim için mingw64 üzerinde çalışıyor. Codeblocks kullanıyorsanız, proje derleyicinizin mingw64 olarak ayarlanıp ayarlanmadığını kontrol etmeyi unutmayın.

3

Ben de aynı problemi yaşıyorum. "error: 'stoi' bir 'std' üyesi değil."

İlk olarak, C++ 11'in etkinleştirildiğinden emin oldum. Sonra g ++ derleyicisini en yeni sürüme güncelledim. Bundan sonra, bu hata ortadan kalktı.

+0

Test edilmiş ve Debian üzerinde G ++ 4.9 ile çalışıyor. Kullanıcı bir Windows çözümüne ihtiyaç duysa da –

İlgili konular