25 October 2026

Release of the Next-Generation CodePorting.Translator Cs2Cpp

We are announcing the release of a major architectural update to CodePorting.Translator Cs2Cpp. The next-generation translator has been completely rewritten to utilize Roslyn, replacing the legacy NRefactory library used in previous iterations. This transition resolves a significant architectural limitation of the older version, which was restricted to C# 5. By leveraging Roslyn, the new translator natively supports modern language features—currently up to C# 13—and is positioned to support future versions of C# as the language continues to evolve.

If you have previously encountered limitations when trying to port modern C# codebases to C++, this release removes those barriers and opens up new possibilities for your projects.

Expanded Language Support

The transition to Roslyn's semantic analysis has unlocked support for a vast array of powerful language features that were previously unsupported. The new translator handles complex modern patterns seamlessly, including:

  • Asynchronous Workflows & Iterators: Full support for async/await (translated into state machines wrapped in Task templates) and the yield operator.
  • Records & Primary Constructors: Complete translation of reference and struct records, the with keyword, and primary constructors.
  • Advanced Pattern Matching: Support for switch expressions, property and positional patterns, and C# 11 list patterns.
  • Modern Data Structures: Translation of Value Tuples, Span<T>, Memory<T>, and stackalloc.
  • Syntactic Sugar: LINQ query syntax, expression-bodied members, string interpolation, null-propagation (?. and ?[]), and auto-property initialization.
  • Latest Additions: Support for recent language enhancements such as file-scoped namespaces, function pointers, and C# 12 collection expressions.

For a detailed technical breakdown of how these modern constructs are mapped to C++, please refer to the New Features documentation.

Integration

Upgrading your translation pipeline is designed to be straightforward. The next-generation translator acts as a drop-in replacement for your existing workflows. It accepts the same command-line arguments, reads the same configuration files, and respects the same code attributes you are already familiar with.

Because the new engine requires the C# projects to be semantically correct, you can now leverage the full power of Roslyn's compiler to ensure your code is translated with high precision. Whether you are integrating this into an existing CI/CD pipeline or trying it out locally, the migration path is smooth and well-documented.

For detailed instructions on transitioning your projects and build environments, please refer to the Migration Guide.

Documentation and Downloads

We have published a comprehensive documentation portal to help you set up the new translator, understand its capabilities, and integrate it into your build scripts.

Related News

Related Videos

Related Articles