Add Transparent Comparator Support
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu bằng cách xác định khai báo variables_map và lớp cơ sở std::map mà nó kế thừa. Xem xét các yêu cầu của C++14 đối với bộ so sánh trong suốt và cách sử dụng find hiện có được nêu trong issue, sau đó kiểm tra các bài kiểm thử của module đối với việc tra cứu variables_map. Được coi là hoàn thành khi các phép tra cứu chấp nhận các khóa tương thích dạng chuỗi mà không tạo các đối tượng std::string tạm thời không cần thiết và hành vi hiện có vẫn được giữ nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
It would be great of boost::program_options::variables_map could have transparent comparator support (c++14 feature), to potentially avoid unnecessary object creation when accessing values in the map. Theoretically only a std::less<> needs to be added as the third template parameter of the std::map variables_map inherits from. Currently:
// 1
boost::program_options::variable_map vm;
vm.find("test"); // implicit std::string object created and destoryed
// 2
std::string_view sv("test");
vm.find(sv); // does not compile
// 3
vm.find(std::string(sv)); // only way to inspect with a std::string_view, explicit std::string object created and destroyed
With a transparent comparator 1 will not create a std::string object and just compare directly against the c-string literal. 2 will work as shown without any extra objects being created. 3 will be unnecessary
- Ngôn ngữ chính
- C++
- Star
- 136
- Fork
- 117
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 boostorg/program_options
-
Provide C++20 moduleĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
boostorg/program_options#160 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
boostorg/program_options#159 · 3 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
boostorg/program_options#147 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
boostorg/program_options#146 ·
-
non static member shadowsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
boostorg/program_options#144 ·
Tất cả issue của boostorg/program_options
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
shadps4-emu/shadps4-qtlauncher#465 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`FakeBackendV2.run` fails with `NoiseError` on circuits with delays on qubits where T2 > 2·T1Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Qiskit/qiskit-aer#2466 ·
-
bug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
NVIDIA/attestation-sdk#41 · 1 bình luận ·
-
[Bug]: CMAKE Fails to find libgit2 on POP OSCó thể đã có người làm @Tirpitz93 đã nhận hôm nay. Đang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
subsurface/subsurface#5007 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
feature request
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 2 ngày