boost::span cannot be implicitly constructed from `std::initializer_list` indirectly [feature-request]
まだ誰も着手していません。
評価
調査の方向性
ソースファイルもテストも指定されていません。まず boost::span のコンストラクターオーバーロードと既存の span のテストカバレッジを見つけ、次に issue の direct-list-initialization の例を確認してください。例がコンパイルでき、同等のカバレッジによって意図した initializer-list の動作が確認され、既存の range 構築が退行しなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
NOTE: This isn't something std::span in C++20 supports either, unfortunately. But since Boost tries to offer things a future standard might adopt, I think this fits?
Because boost::span has no constructor signature with a direct std::initializer_list argument, but only a templated "range" one, this works:
std::initializer_list<int> il{1,2,3,4};
boost::span<int> sp(il);
but this does not, because it requires two implicit conversions to occur:
boost::span<int> sp({1,2,3,4});
I believe the above would work if this were to be added:
constexpr span(std::initializer_list<T> il) noexcept
: s_(boost::data(il), il.size())
{}
I can provide a PR, if you wish.
I recognize this can lead to lifetime issues for the backing array, but that's already true for span regardless.
There is a std proposal for this, I believe: p2447r2, but I don't know its disposition.
- 主要言語
- C++
- スター
- 156
- フォーク
- 116
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
boostorg/core のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 55/100
-
saturate_castオープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
move span to boost::core::再び着手できるかも @glenfe が 510 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
FujiNetWIFI/fujinet-firmware#2045 ·
メンテナーはふだん 1 日以内に返信
-
(S1 - Need confirmation)
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
CleverRaven/Cataclysm-DDA#89159 ·
メンテナーはふだん 1 日以内に返信
-
area:libnvmpi bug P3
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gjrtimmer/jetson-nvmpi#33 ·
-
bug(wasi_crypto): ArrayOutput::pull reports the wrong all-pulled flag対応中かも @Yashbhu が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
bug question
難易度 1/5 1時間未満 初心者へのやさしさ 62/100