CNativeWとCNativeAの自前コンストラクタ実装を削除する #1516
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR の目的
SonarCloud解析でC++関数の誤用が指摘されているので、CNativeWとCNativeAの自前コンストラクタ実装を削除します。
カテゴリ
PR の背景
#1477 で対処しようとしていた問題を解決します。
SonarCloudの指摘は
std::forward
の使い方が誤っているなんですが、std::forward
をstd::move
に置き換えても警告が残ることが分かっています。どんな警告が残るかというと、
管理すべきリソースを持たないクラスがmove semantics実装すんなヴォケ!
というものです。
ここで言う「リソース」にはメモリポインタを含みません。メモリポインタ自体は単なるアドレス値であり、プロセス空間内の特定の位置を指し示す数値です。同じメモリでもメモリハンドルなら「リソース」に該当するのでややこしいです。CNativeWとCNativeAはメモリアドレスしか扱わないクラスなのでC++的には「リソース」を持たないクラスに当たるらしいです。
PR のメリット
SonarCloudのBugs指摘を数件解消できます。
PR のデメリット (トレードオフとかあれば)
とくに思い当たらないです。
仕様・動作説明
アプリの仕様・動作とは関係ない変更です。
実際にメモリ管理を行っているのはCMemoryなので、CNativeWとCNativeAの独自定義コンストラクタを削っても影響はないと考えられます。
PR の影響範囲
実際の影響は発生しないと考えられます。
テスト内容
追加のテストが必要かどうか、PRを投げてから判断します。
👇
既にある単体テストのみで十分と判断したので追加はなしです。
関連 issue, PR
#1477
参考資料