optional::transform mandates are too strict - need to allow references
まだ誰も着手していません。
評価
調査の方向性
Issue で言及されている既存のテストケースから始め、それが検証している optional::transform の制約を調べてください。実装をリンク先の C++ 標準の条項と比較し、特にオブジェクト型の要件を確認するとともに、optional<T&> が許可される場合に参照結果が受け入れられることを検証してください。他の明記された制約を弱めることなくテストが通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
Don't overconstrain the types that can result from transform if optional<T&> is allowed.
https://eel.is/c++draft/optional#monadic-7
Let U be remove_cv_t<invoke_result_t<F, decltype(*val)>>.
https://eel.is/c++draft/optional#monadic-8
Mandates: U is a non-array object type other than in_place_t or nullopt_t. The declaration
U u(invoke(std::forward(f), *val));
is well-formed for some invented variable u.
[Note 1: There is no requirement that U is movable ([dcl.init.general]). — end note]
However, if optional<T&> is allowed, the object type requirement is too strong -- is_object_v<U> will prohibit a reference returning function creating an optional where U is a reference.
Caught by existing test case.
- 主要言語
- C++
- スター
- 47
- フォーク
- 25
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
bemanproject/optional のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 58/100
bemanproject/optional#188 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
bemanproject/optional#138 · コメント 17 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
bemanproject/optional#134 · コメント 6 件 · リアクション 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
bemanproject/optional#129 ·
-
good first issue
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
bemanproject/optional#120 · コメント 3 件 ·
bemanproject/optional の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
hyprwm/aquamarine#426 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
amnezia-vpn/amnezia-client#3222 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
valkey-io/valkey-search#1465 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
microsoft/onnxruntime-genai#2633 ·
メンテナーはふだん 1 日以内に返信