Support C++20 span types
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- cpp, nodejs
調査の方向性
まず、既存の Data() と長さアクセサの組み合わせを見つけ、次にポインター/長さの入力を受け取る New および Copy ファクトリを確認します。プロジェクトで C++ のバージョンガードと既存のオーバーロードをどのように扱っているかを確認します。ポインター/長さのオーバーロードを ABI 互換性のために維持したまま、両方向の std::span サポートを追加できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
node-addon-api's buffer-like types pass their backing memory as a raw pointer plus a separate length, both on the way out (Data() + a length accessor) and on the way in (the New/Copy factories). Callers must keep the two values in sync manually, with no bounds information attached to the pointer.
Once C++20 is the minimum supported standard, we should adopt std::span in both directions. These additions are ABI-compatible (existing pointer/length overloads stay), and give callers a single bounds-carrying handle that works with range-based for, <algorithm>, and <ranges>.
This can be an additive change with a C++ version guard.
- 主要言語
- C++
- スター
- 2.4k
- フォーク
- 499
- 平均マージ
- 2日 11時間
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nodejs/node-addon-api のほかの issue
-
blocked SemVer-major
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
nodejs/node-addon-api#1748 ·
-
blocked SemVer-major
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
nodejs/node-addon-api#1746 ·
-
SemVer-major
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
nodejs/node-addon-api#1745 ·
-
stale
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
nodejs/node-addon-api#1724 · コメント 2 件 ·
-
never-stale
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
nodejs/node-addon-api#1665 · コメント 5 件 ·
nodejs/node-addon-api の issue をすべて見る
似ている issue
-
Website Doc Typo オープン
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
-
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
autowarefoundation/autoware_universe#13413 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
automated-analysis bug memory-safety
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100