clang-tidy v. -Weffc++
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu với tài liệu về clang-tidy's readability-redundant-member-init và các cuộc thảo luận được liên kết mapbox/cpp#37, wagyu#69 và wagyu#70; không có tệp hoặc bài kiểm thử nào trong repository được xác định. Xác định một cách tiếp cận đã được thống nhất cho -Weffc++, hướng dẫn về clang-tidy và việc phát hiện các member chưa được khởi tạo; công việc được xem là hoàn thành khi có khuyến nghị và cấu hình được ghi lại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Context
Recent versions of clang-tidy added readability-redundant-member-init: https://clang.llvm.org/extra/clang-tidy/checks/readability-redundant-member-init.html
This is handy! When a class member has a default initializer it is redundent to initialize it in the member list.
But, because some types don't have default initializers, forgetting to initialize them in the member list (or using c++11 initialization in the class definition) can lead to serious trouble like mapbox/wagyu#69 - refs mapbox/wagyu#70.
So, this is the reason, at https://github.com/mapbox/cpp/issues/37#issuecomment-336200744, that we recommend using g++ and the -Weffc++ flag because it can catch this (note, clang++ plus -Weffc++ cannot):
-Weffc++ - useful when building with g++ (does not do much with clang++). With g++ it can catch uninitialized class members and prevent crashes like mapbox/wagyu#69 - refs mapbox/wagyu#70
Problem
-Weffc++will warn on all class members not explicitly initialized in the initializer listclang-tidywill automatically remove variables from the initializer list that have default constructors
So, the two will fight: causing each other warnings. For this reason I think we should likely:
- let clang-tidy win
- recommend no longer using g++ with
-Weffc++ - figure out what alternative way we can catch when members, without default initializers, are uninitialized (without needing to use
-Weffc++). Maybe anotherclang-tidycheck?
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 110
- Fork
- 17
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của mapbox/cpp
-
glossary
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
-
Docs on ABIs Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
-
docs/learning-resources.md blank Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
-
Add namespace to glossary Đang mởglossary
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 58/100
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
danielmiessler/LifeOS#2218 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
hemilabs/ui-monorepo#2332 ·
-
Help-Wanted Needs-Triage Package-Update
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/winget-pkgs#438662 ·
-
priority: p3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
googleapis/librarian#7636 ·