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.Native Cs2Cpp 22.3

    CodePorting.Native Cs2Cpp 22.3

    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 iterators provided by the IEnumerable class and the duck-typed collections were improved. The performance was raised for those implemented via the native C++ containers, and the assignment to the referenced element was supported where possible.
    2. The new build_cs_projects option was supported by the porter.
    3. The definitions of some attributes were fixed. The AttributeUsage mask was updated.
    4. The method overloads were added to numerous classes. These support ArrayView-typed parameters where only ArrayPtr was supported previously.
    5. The default messages of the exception classes were put in line with the .Net behavior. No language-specific messages are supported at the moment.

    Minor fixes

    1. The new constructors of the System::Drawing::FontFamily class were supported.
    2. The visibility of the nested private classes was fixed.
    3. The RUNPATH entry was deleted from the Linux and MacOS dynamic libraries.
    4. The new collect_porter_coverage_info option was supported by the porter. However, it is only available to Aspose users.
    5. The RIPEMD-160 hash algorithm was supported by the library.
    6. On MacOS, the RTTI information for the exception types was properly exported. Now the exceptions thrown by CodePorting.Native Cs2Cpp or dependent projects can be caught by the customer’s code.
    7. The size of the CodePorting.Native Cs2Cpp library was reduced on MacOS and Linux.
    8. The operator == declared in the System namespace was causing compilation issues with the third party code if exported to the global namespace. This was fixed.
    9. The compilation issues were fixed for the case of the direct inclusion of some headers.
    10. The free value of the tests_garbage_collection option is no longer supported by the porter.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    SLIDESCPP-3372Add MacOS support to the FontFamily class' methods for getting generic fontsTask
    SLIDESCPP-3364Porter: Fix the visibility of nested private classesBug
    CSPORTCPP-4967Revert changes related to RUNPATH from asposecpplibBug
    WORDSCPP-1169Implement RIPEMD160 hash algorithmNew feature
    CSPORTCPP-3465Improve EnumeratorBasedIteratorEnhancement
    CSPORTCPP-4756Fix regressions reported by product teamsBug
    CSPORTCPP-4931Make sure gold tests cs files are compilableEnhancement
    SLIDESCPP-3394Fix uncatched exceptions issue in Aspose.Slides for C++ for MacOSBug
    SLIDESCPP-3393Reduce CodePorting.Native.Cs2Cpp library size in Linux and MacOSEnhancement
    PDFCPP-1730Add support ArrayView for other System::* classesEnhancement
    CSPORTCPP-3466An invalid message is generated if the default constructor is usedBug
    WORDSCPP-1170SmartPointer code is not checking is method IsNull existsBug
    CSPORTCPP-4987Compile each library header individuallyEnhancement
    SLIDESCPP-3387Сorrupted display of circular referencesBug

    Public API and Backward Incompatible Changes

    1. The iterator types of System::Collections::Generic::IEnumerable and duck typed-collections were completely reworked. This may alter some code.
    2. The supported glibc version will be changed in the upcoming releases.
    3. The support of the tests_garbage_collection option was reduced. There are no possible usecases for the retired values anyway.