Tôi chỉ cần chạy qua cảnh báo sau đây trong GCC:GCC cảnh báo về dereference ngầm
warning: implicit dereference will not access object of type ‘volatile util::Yield’ in statement [enabled by default]
khi biên dịch mã này:
volatile util::Yield y1;
util::Yield y2;
y1 += y2; // <--- Warning triggered here.
và tiếc là tôi không hoàn toàn hiểu những gì GCC đang cố gắng để nói tôi ...
Lợi nhuận của lớp được khai báo như sau:
class Yield {
public:
Yield();
Yield &operator+=(Yield const &other);
Yield &operator+=(Yield const volatile &other);
Yield volatile &operator+=(Yield const &other) volatile;
Yield volatile &operator+=(Yield const volatile &other) volatile;
// Other operators snipped...
};
Bất kỳ ý tưởng nào?
Cảm ơn!
cảnh báo này nên lỗi thời đối với C++ 11 vì trong C++ 11, giá trị của một cuộc gọi hàm sẽ không được đọc nữa. –