Documentation

    Table of Content
    • CodePorting.Translator Product Family
      • CodePorting.Translator Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Translator Cs2Cpp
            • How to Use Command line to translate and build Projects
            • How to Use GUI to translate and build Projects
        • Developer Guide
          • Translating Simple C# Projects
            • Translating Simple Console Application
            • Translating Simple Library
            • Translating Simple NUnit Test
          • Translating Dependent C# Projects
            • Translating Dependent Console Application
            • Translating Dependent Library
            • Translating Dependent NUnit Test
          • Qt support
          • Translating Complex C# Projects
            • How to Convert Complex C# Console Application to C++
            • How to Convert Complex C# Library to C++
            • How to Convert Complex C# NUnit Test to C++
          • What Converts to What
            • AbstractClasses
            • BreakStatements
            • ClassAutoProperties
            • ClassConstructors
            • ClassEvents
            • ClassFinalizers
            • ClassGenericMethods
            • ClassIndexers
            • ClassMethods
            • ClassProperties
            • ClassStaticConstructor
            • ClassStaticMethods
            • ClassStaticProperties
            • ClassVirtualMethods
            • ContinueStatements
            • Delegates
            • DoWhileStatements
            • Enums
            • EnumTypeCast
            • Exceptions
            • ExpectedException
            • ForeachStatements
            • ForeachStatementsStd
            • ForStatements
            • GenericClasses
            • GenericDelegates
            • GenericInterfaces
            • GenericStructs
            • IfStatements
            • LambdaExpressions
            • NestedClasses
            • ReturnStatements
            • SimpleClass
            • SimpleInterface
            • SimpleStruct
            • SimpleTest
            • StandardTypeCast
            • StaticClass
            • SwitchStatements
            • TestWithSetupMethods
            • ThrowStatements
            • TryCatchFinallyStatements
            • TryCatchStatements
            • TryFinallyStatements
            • VarExpressions
            • WhileStatements
          • CodePorting Translator Cs2Cpp Attributes
          • CodePorting Translator Cs2Cpp Configuration File
            • CodePorting.Translator Cs2Cpp Configuration File Structure
            • Attributes in Configuration file
            • Configuration file Nodes
            • Configuration file Options
          • Memory Management Model
            • Memory Management Model Description
            • Using aliasing constructor to create a smart pointer
          • Cmake Support
          • C++ code injection
          • C++ user-defined exception classes
          • Limitations and Bugs
            • Translator Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2022
            • CodePorting.Translator Cs2Cpp 22.6
            • CodePorting.Native Cs2Cpp 22.5
            • CodePorting.Native Cs2Cpp 22.4
            • CodePorting.Native Cs2Cpp 22.3
            • CodePorting.Native Cs2Cpp 22.2
            • CodePorting.Native Cs2Cpp 22.1
          • 2021
            • CodePorting.Native Cs2Cpp 21.12
            • CodePorting.Native Cs2Cpp 21.11
            • CodePorting.Native Cs2Cpp 21.10.1
            • CodePorting.Native Cs2Cpp 21.10
            • CodePorting.Native Cs2Cpp 21.9
            • CodePorting.Native Cs2Cpp 21.8
            • CodePorting.Native Cs2Cpp 21.7
            • CodePorting.Native Cs2Cpp 21.6
            • CodePorting.Native Cs2Cpp 21.5
            • CodePorting.Native Cs2Cpp 21.4
            • CodePorting.Native Cs2Cpp 21.3
            • CodePorting.Native Cs2Cpp 21.2
            • CodePorting.Native Cs2Cpp 21.1
          • 2020
            • CodePorting.Native Cs2Cpp 20.12
            • CodePorting.Native Cs2Cpp 20.11
            • CodePorting.Native Cs2Cpp 20.10
            • CodePorting.Native Cs2Cpp 20.9
            • CodePorting.Native Cs2Cpp 20.8
            • CodePorting.Native Cs2Cpp 20.7
            • CodePorting.Native Cs2Cpp 20.6
            • CodePorting.Native Cs2Cpp 20.5
            • CodePorting.Native Cs2Cpp 20.4
            • CodePorting.Native Cs2Cpp 20.3
            • CodePorting.Native Cs2Cpp 20.2
            • CodePorting.Native Cs2Cpp 20.1
          • 2019
            • CodePorting.Native Cs2Cpp 19.1
            • CodePorting.Native Cs2Cpp 19.2
            • CodePorting.Native Cs2Cpp 19.3
            • CodePorting.Native Cs2Cpp 19.4
            • CodePorting.Native Cs2Cpp 19.4.1
            • CodePorting.Native Cs2Cpp 19.5
            • CodePorting.Native Cs2Cpp 19.6
            • CodePorting.Native Cs2Cpp 19.7
            • CodePorting.Native Cs2Cpp 19.8
            • CodePorting.Native Cs2Cpp 19.9
            • CodePorting.Native Cs2Cpp 19.10
            • CodePorting.Native Cs2Cpp 19.11
            • CodePorting.Native Cs2Cpp 19.12
          • 2018
            • CodePorting.Native Cs2Cpp 18.9
            • CodePorting.Native Cs2Cpp 18.9.1
            • CodePorting.Native Cs2Cpp 18.10
            • CodePorting.Native Cs2Cpp 18.11
            • CodePorting.Native Cs2Cpp 18.12
    1. Home
    2. CodePorting.Translator Product Family
    3. CodePorting.Translator Cs2Cpp
    4. Release Notes
    5. 2022
    6. CodePorting.Translator Cs2Cpp 22.6

    CodePorting.Translator Cs2Cpp 22.6

    What's on this Page

      • Major Features
      • Minor fixes
      • Full List of Issues Covering all Changes in this Release
      • Public API and Backward Incompatible Changes

    Major Features

    1. The project was renamed to CodePorting.Translator Cs2Cpp. The ‘CodePorting.Native Cs2Cpp’ name is now obsolete. From now on, the Nuget packages are CodePorting.Translator.Cs2Cpp.Framework for the library and CodePorting.Translator.Cs2Cpp.Control to control the translator and the translated code. MSBuild and CMake targets are CodePorting.Translator.Cs2Cpp.Framework. Dynamic libraries' base name is codeporting.translator.cs2cpp.framework (e. g. codeporting.translator.cs2cpp.framework_vc14x86d.dll for 32-bit Debug Visual Studio version). Some APIs that contained product name were also changed to match the new naming scheme.
    2. The implementations of StackArray and ArrayView classes were improved. Several library classes that work with arrays were extended to work with these array types as well.
    3. The force_static_cast option was supported by the porter. It makes the ported code to use static_casts instead of dynamic_casts which can be useful if all casts are meant to succeed.
    4. The Boost version used was updated to 1.79.0. The Botan version used was updated to 2.19.1. Some build issues with these libraries were fixed.

    Minor fixes

    1. The CppArrayOnStack attribute can now be used with properties.
    2. The invocations of parent indexer setter are now translated properly.
    3. The code generated when the CppSkipTestDefinition attribute is placed at the test method was fixed.
    4. Tha bug was fixed making a WeakReference class a value type in the translated code.
    5. The signature of the GetSharedMembers() method was optimized in the library and translated code.
    6. The translation of in-array delegate assignment was fixed.
    7. Proper exceptions are now thrown from the Dictionary methods if nullptr is passed as a key.
    8. The translator now supports using the inherited methods as TestCaseSource.
    9. Doxygen version used to generate the documentation was upgraded.
    10. The List::ForEach method now throws proper exceptions if the predicate changes the number of elements in the list.
    11. The growth of big (up to ~2 billion elements) MemoryStream was fixed.
    12. The DashCap::Triangle mode was supported. Other modes of the caps rendering were fixed.
    13. The behavior of String::IndexOf was fixed for the empty string case.
    14. The translation of Enum.TryParse calls were fixed for some parameter sets.
    15. The Tag property of the Image class was supported.
    16. Several Clang-Tidy warnings were fixed across the codebase, potentially improving the performance.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-5010Rename Nuget and downloadable packages and GitHub pagesTask
    PDFCPP-1855Add specialization for StackArray<bool, N>Task
    PDFCPP-1859Add possibility to apply CppArrayOnStack attribute on properties (CsPorter)Task
    CSPORTCPP-5150Fix a compile error in ComplexClassBasePropertiesImplBug
    CSPORTCPP-5129Fix a compile error in SkipTestDefinitionBug
    CSPORTCPP-5181Remove WeakReference from force_value_typesBug
    TASKSCPP-1732Change GetSharedMembers semantic to improve leak-detection performance.Task
    SLIDESCPP-3459Porter: Incorrect translation of delegate assignmentBug
    CSPORTCPP-3448error: SEH exception with code 0xc0000005 thrown in the test bodyBug
    CSPORTCPP-3446Invalid exceptions are thrown while passing null as the parameter value of a methodBug
    WORDSCPP-1177Refactoring of Unified tests broke C++ portingBug
    PDFCPP-1879MemoryStream big size issueBug
    SLIDESCPP-3452PDF import throws NotImplementedException errorBug
    CSPORTCPP-5211Support CodePorting.Native Cs2CppTask
    CSPORTCPP-4968Two different boost versions linked into asposecppBug
    PDFCPP-1896Fix String::IndexOf with StringComparison parameterBug
    BARCODECPP-500Fix Enum.TryParse() translationBug
    BARCODECPP-501Implement Image.TagNew Feature
    CSPORTCPP-5282Update Boost, Botan, Skia for all platformsTask

    Public API and Backward Incompatible Changes

    1. The product was renamed. This includes Nuget package naming, DLL and lib files naming, lesser API changes, etc.
    2. The supported glibc version will be changed in the upcoming releases.