次世代 CodePorting.Translator Cs2Cpp のリリース

CodePorting.Translator Cs2Cpp の大規模なアーキテクチャ更新のリリースを発表いたします。次世代トランスレーターは、以前のバージョンで使用されていたレガシーな NRefactory ライブラリに代わり、Roslyn を活用するために完全に書き直されました。この移行により、C# 5 に制限されていた旧バージョンの重大なアーキテクチャ上の制約が解消されます。Roslyn を採用することで、新しいトランスレーターは最新の言語機能(現在は C# 13 まで)をネイティブにサポートし、言語の進化に合わせて将来の C# バージョンもサポートできる体制を整えています。

これまで最新の C# コードベースを C++ に移植する際に制限を感じていた場合、今回のリリースによりその障壁が取り除かれ、プロジェクトの新たな可能性が開かれます。

拡張された言語サポート

Roslyn のセマンティック解析への移行により、以前はサポートされていなかった数多くの強力な言語機能が利用可能になりました。新しいトランスレーターは、以下のような複雑で現代的なパターンをシームレスに処理します。

  • 非同期ワークフローとイテレーター: async/await(Task テンプレートにラップされたステートマシンに変換)および yield 演算子を完全サポート。
  • レコードとプライマリコンストラクター: 参照型および構造体のレコード、with キーワード、プライマリコンストラクターの完全な変換。
  • 高度なパターンマッチング: switch 式、プロパティおよび位置パターン、C# 11 のリストパターンをサポート。
  • 最新のデータ構造: Value Tuples、Span<T>、Memory<T>、および stackalloc の変換。
  • シンタックスシュガー: LINQ クエリ構文、式本体メンバー、文字列補間、null 条件演算子(?. および ?[])、自動プロパティの初期化。
  • 最新の追加機能: ファイルスコープの名前空間、関数ポインター、C# 12 のコレクション式など、最近の言語拡張をサポート。

これらの現代的な構成要素が C++ にどのようにマッピングされるかの詳細な技術解説については、新機能ドキュメントをご参照ください。

統合について

翻訳パイプラインのアップグレードは簡単に行えるよう設計されています。次世代トランスレーターは、既存のワークフローのドロップイン代替として機能します。同じコマンドライン引数を受け付け、同じ設定ファイルを読み取り、すでにお使いのコード属性をそのまま尊重します。

新しいエンジンは C# プロジェクトがセマンティック的に正しいことを要求するため、Roslyn コンパイラの全機能を最大限に活用し、コードが高精度で変換されることを保証できます。既存の CI/CD パイプラインに統合する場合でも、ローカルで試す場合でも、移行プロセスはスムーズかつ十分に文書化されています。

お使いの C# プロジェクトが最新すぎて以前のトランスレーターでは対応できなかった場合、今こそ再挑戦する絶好の機会です。

プロジェクトおよびビルド環境の移行に関する詳細な手順については、移行ガイドをご参照ください。

ドキュメントとダウンロード

新しいトランスレーターのセットアップ、機能の理解、ビルドスクリプトへの統合を支援する包括的なドキュメントポータルを公開しました。

関連ニュース

関連動画

関連記事