2014-04-27 639 views
8

std::defaultfloat似乎沒有在GCC中定義,儘管是in the standard(我認爲它是§27.5.6.4)。我已經隔離它到這個簡單的程序:錯誤:'defaultfloat'不是'std'的成員

// test.cpp 
#include <iostream>                

int main()                  
{                    
    std::cout << std::defaultfloat << 1.3;          
    return 0;                 
} 

這個編譯在VC++ 11中。我試着用用G ++ 4.7.2和g ++ 4.9.0編譯這兩種命令:

g++ test.cpp g++ test.cpp -std=c++11

我也具有相同的結果試圖an online compile on GCC 4.8.1 here,總是:

[email protected]:~/Documents/test$ g++ test.cpp -std=c++11 
test.cpp: In function ‘int main()’: 
test.cpp:5:15: error: ‘defaultfloat’ is not a member of ‘std’ 
    std::cout << std::defaultfloat << 1.3; 

爲什麼我收到這個錯誤?

+0

哼。奇怪。你有支持C++ 11的C++標準庫實現嗎? –

+0

嗯,我剛安裝了GCC 4.9.0,並且與Debian附帶的標準GCC 4.7.2安裝有同樣的問題。你是這個意思嗎? – arman

+0

好吧,如果它安裝沒有問題,我希望它工作。你能告訴我glibc的版本嗎(我假設這是GCC附帶的)? –

回答

7

GCC libstdc++只是不支持這些C++ 11操縱器的任何 您編譯的版本。 A patch剛剛提交了一個月前

+1

一年後,使用G ++ 4.9.2這個操縱器仍然不被支持。如果你想使用所有的C++ 11功能,那麼我強烈推薦使用Clang。 –

相關問題