2014-04-27 15 views
8

std::defaultfloat dường như không được xác định trong GCC, mặc dù là in the standard (tôi nghĩ đó là §27.5.6.4). Tôi đã cô lập nó với chương trình đơn giản này:: ‘defaultfloat’ không phải là thành viên của ‘std’

// test.cpp 
#include <iostream>                

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

Điều này biên dịch trong VC++ 11. Tôi đã cố gắng biên soạn này với g ++ 4.7.2 và g ++ 4.9.0 sử dụng cả hai lệnh:

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

Tôi cũng đã cố gắng an online compile on GCC 4.8.1 here, luôn luôn với kết quả tương tự:

[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; 

Tại sao tôi nhận này lỗi?

+0

Hm. Lạ thật. Bạn có thực hiện thư viện chuẩn C++ hỗ trợ C++ 11 không? –

+0

Tôi vừa mới cài đặt GCC 4.9.0 và tôi đã gặp vấn đề tương tự với bản cài đặt GCC 4.7.2 tiêu chuẩn đi kèm với Debian. Đó có phải là ý bạn không? – arman

+0

tốt, nếu nó được cài đặt mà không có vấn đề, tôi hy vọng nó hoạt động. Bạn có thể vui lòng cho tôi biết phiên bản của glibc (tôi giả định đó là những gì tàu với GCC)? –

Trả lời

7

GCC libstdc++ chỉ không hỗ trợ các trình xử lý C++ 11 này trong bất kỳ các phiên bản bạn đã biên soạn. A patch đã được gửi chính xác một tháng trước

+1

Một năm sau, việc sử dụng trình điều khiển này của G ++ 4.9.2 vẫn không được hỗ trợ. Nếu bạn muốn sử dụng tất cả các tính năng của C++ 11 thì tôi khuyên bạn nên sử dụng Clang. –

Các vấn đề liên quan