Khi tôi đang chuyển đổi phiên bản trình biên dịch từ gcc 4.6 sang gcc 4.8 Tôi nhận được lỗi sau đây lỗi: cuộc gọi quá tải 'isnan (double)' không rõ ràng.porting isnan to C++ 11
Điều này là do trong C++ 11 có tờ khai chức năng differend: C: int isNaN (double) C++ 11: bool isNaN (double)
từ cpluplus:
- Trong C, điều này được thực hiện như một macro trả về giá trị int. Loại x phải là phao, gấp đôi hoặc dài gấp đôi.
- Trong C++, nó được thực hiện với quá tải hàm cho mỗi loại dấu phẩy động, mỗi trả về một giá trị bool.
Làm cách nào để khắc phục sự cố này?
How are you gọi đó? Cho chúng tôi thấy bối cảnh. –
đề xuất juanchoupanza đã hoạt động. Tôi đã tuyên bố bằng cách sử dụng không gian tên trước đây, nhưng tôi đã phải thêm nó vào cuộc gọi isnan vì đó là nguồn gốc của sự mơ hồ. –
Đó là chính xác những gì sai với 'sử dụng không gian tên std' ở khắp mọi nơi. –