Trong C++ 11 là std::sqrt
được định nghĩa là constexpr
, tức là nó có thể được sử dụng hợp pháp từ các hàm constexpr
khác hoặc trong ngữ cảnh biên dịch thời gian như kích thước mảng hoặc đối số mẫu không? g + + dường như cho phép nó (bằng cách sử dụng -std=c++0x
), nhưng tôi không chắc chắn rằng tôi có thể lấy đó là thẩm quyền cho rằng hỗ trợ C++ 0x/C++ 11 vẫn chưa hoàn thành. Thực tế là tôi không thể tìm thấy bất cứ thứ gì trên Internet khiến tôi không chắc chắn.Trong C++ 11 là sqrt được định nghĩa là constexpr?
Có vẻ như đây là thứ mà người ta có thể dễ dàng tìm ra bằng Google, nhưng tôi đã cố gắng (trong 40 phút ngay bây giờ ...) và không thể tìm thấy gì. Tôi có thể tìm thấy một số đề xuất để thêm constexpr vào các phần khác nhau của thư viện chuẩn (ví dụ: this one), nhưng không có gì về sqrt
hoặc các chức năng toán học khác.
Điều này có được nêu rõ ràng không? 26.8 C thư viện không có tham chiếu đến constexpr. Một triển khai chắc chắn sẽ vẫn phù hợp nếu nó cung cấp các chức năng triển khai hàm constexpr ngoài các yêu cầu bắt buộc mà không có. – user2023370
@ user643722: Việc triển khai thư viện chuẩn * có thể * xác định phiên bản 'constexpr'. Nhưng nó không phải là * yêu cầu * để làm như vậy, và do đó bạn không thể thực sự dựa vào nó. –