class A {
int f(int x, int j) { return 2;}
decltype(f)* p;
};
Cung cấp cho tôi những lỗi:Decltype chức năng thành viên
error: decltype cannot resolve address of overloaded function
Tôi không thể hiểu tại sao lỗi mà thậm chí còn nói về chức năng quá tải. Tương tự như vậy, tôi nghĩ rằng có lẽ tôi cần phải sử dụng toán tử phạm vi để truy cập các chức năng:
class A {
int f(int x, int j) { return 2;}
decltype(A::f)* p;
};
nào vẫn mang lại cho tôi một lỗi nhưng một mô tả rõ ràng hơn:
error: invalid use of non-static member function 'int A::f(int, int)'
Tại sao nó rằng tôi không được phép sử dụng decltype để tìm loại chức năng thành viên? Cách khác, đặt chức năng thành viên là static
sẽ xóa lỗi trong cả hai trường hợp.
bạn đang sử dụng phiên bản trình biên dịch và trình biên dịch nào? –
@RichardChambers g ++ 4.8.1 – Silversonic