2013-08-21 62 views
13

Tôi tìm thấy nó gây phiền nhiễu yên tĩnh mà tôi phải sử dụng vĩ mô _USE_MATH_DEFINES để có được giá trị của pi vào chương trình của tôi. Hoặc tôi cần tự định nghĩa nó trong một tiêu đề của riêng mình. Hoặc tôi phải sử dụng tăng cường và tất cả những điều đó.Tại sao không có định nghĩa về hằng số pi trong tiêu chuẩn C++ 11?

Nó chỉ làm phiền tôi, rằng không có tiêu đề C++ chuẩn xác định hằng số theo cách di động. Có bất kỳ lý do cụ thể mà hằng số toán học như pi không có trong tiêu chuẩn C++? Nó có thể là một trong những phiên bản tiếp theo của tiêu chuẩn không?

+2

khó chịu nhưng cần thiết. Chỉ cần thêm '_USE_MATH_DEFINES' vào tùy chọn trình biên dịch để bạn có thể tránh thêm nó từ tiêu đề. Đây là giải pháp tốt nhất tôi có thể đề xuất –

+2

Luôn có [tăng] (http://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/constants.html) – Cubbi

+2

Ngoại trừ việc macro là '_XOPEN_SOURCE' (phải được định nghĩa là 700) và hằng số là' M_PI'. (Đó là chính nó là đối số mạnh nhất ủng hộ tiêu chuẩn hóa.) –

Trả lời

-5

Tôi cho rằng nó không được tiêu chuẩn hóa bởi vì nó không thực sự là mối quan tâm chính. Tôi thực sự không thấy bất kỳ rắc rối nào trong việc viết xuống một biến #define hoặc const tĩnh, hoặc chỉ tạo một tiêu đề với một chuỗi các hằng số toán học mà bạn có thể cần. Nó không thực sự bất cứ điều gì bất cứ ai sáng tác tiêu chuẩn có trong tâm trí của mình trong khi cố gắng để cải thiện ngôn ngữ.

+11

Chắc chắn nó khó có thể tự mã hóa nó vì nó có thể thay đổi ... – BoBTFish

+1

@BoBTFish Một cách có thể để tránh lỗi là sử dụng 'double pi = 4 * std :: atan (1.0); ' – ilent2

+11

@BoBTFish Tôi sẽ đặt cược số tiền đáng ghét mà giá trị của hằng số toán học 'π' sẽ không thay đổi bất kỳ lúc nào ;-) – dasblinkenlight

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