Cảnh báo Clang (khi sử dụng -Weverything
hoặc Wglobal-constructors
) về các hàm tạo đối với các đối tượng tĩnh.Làm thế nào để đối phó với cảnh báo toàn cầu-constructor trong clang?
warning: declaration requires a global constructor
[-Wglobal-constructors]
A A::my_A; // triggers said warning
^~~~
Tại sao điều này có liên quan và cách xử lý cảnh báo này?
Simple mã ví dụ:
class A {
// ...
static A my_A;
A();
};
A A::my_A; // triggers said warning
Chúng ta có thể thấy cảnh báo, xin vui lòng? – jrok
là tệp này trong một tệp .h? – yngccc
Bạn có một đối tượng của A bên trong lớp A. Làm thế nào để làm việc này? Điều này không trở thành đệ quy - ngay cả khi đối tượng là tĩnh. Mặc dù chỉ có một my_A & đệ quy sẽ không gây ra vấn đề, tôi vẫn có thể thực hiện 'A a; 'và sau đó a.mY_A.my_A.my_A.my_A v.v. – user93353