Add Transparent Comparator Support
まだ誰も着手していません。
評価
調査の方向性
まず variables_map の宣言と、それが継承する std::map の基底クラスを特定します。C++14 の透過比較器の要件と、issue に示されている既存の find の使用方法を確認し、その後、variables_map のルックアップに関するモジュールのテストを調べます。完了の条件は、ルックアップが不要な一時 std::string オブジェクトを作成せずに互換性のある string-like キーを受け入れ、既存の動作が維持されることです。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- C++
- スター
- 136
- フォーク
- 117
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
boostorg/program_options のほかの issue
-
Provide C++20 moduleオープン
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
boostorg/program_options#160 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
boostorg/program_options#159 · コメント 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
boostorg/program_options#147 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
boostorg/program_options#146 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
boostorg/program_options#144 ·
boostorg/program_options の issue をすべて見る
似ている issue
-
code-quality libc++
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
llvm/llvm-project#229284 ·
メンテナーはふだん 1 日以内に返信
-
test-issue
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
llvm/offload-test-suite#1557 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
iOS: hidden scale bar invalidates its intrinsic content size on every layout pass of MLNMapViewオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
maplibre/maplibre-native#4723 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HarbourMasters/Shipwright#7320 ·
メンテナーはふだん 1 日以内に返信