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.2

    CodePorting.Native Cs2Cpp 22.2

    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 conflict was resolved when using both Aspose.Cells for C++ and CodePorting.Native.Cs2Cpp.API headers from the same file.
    2. MacOS-specific release package was added.

    Minor fixes

    1. The porter generated an incorrect code for creating instances of generic structures. This was fixed.
    2. The look of API reference for System::String::operator + () was improved.
    3. The iostream-based overloads of constructors with Stream-based arguments were moved to ported cpp files where possible. Previously, it was neccessary for any user of such constructors to have all field types defined, which resulted in compilation errors.
    4. Previously, applying the CppSkipDefinition attribute to a test method resulted to exclusing both the test method and the test definition (TEST_F) from the ported code. This made this attribute impossible to be used for replacing the test method definition with custom one while keeping the test itself. The test definition is no longer skipped by this attribute.
    5. The new overload of the Char::IsWhiteSpace() method was added.
    6. The porter now generates INT64_C/UINT64_C wrappers for constants that are not properly cast to int64_t/uint64_t by Apple Clang 13.0.
    7. Misprint was fixed in the readme files from our release packages.
    8. The System::WeakReference class was improved. Now it inherits the System::Object. Another constructor and RTTI information were added, the return type of the get_Target() method was fixed.
    9. The glibc version detection in the cmake code was fixed for some platforms.
    10. The rpath value was added to the Linux libraries.
    11. The PathGradientBrush::get_InterpolationColors() method was fixed for some brushes.
    12. The symbols from the Microsoft namespace are now properly exported on MacOS.
    13. The behavior of the Graphics::DrawPolygon() method for incomplete polygons was fixed to match .Net behavior.
    14. The version information was included into the library binaries.
    15. The constructors of the Regex-related classes were sped-up by using shared pointer references instead of copying them.
    16. The lambda variable capturing was working incorreclty in the porter if the lambda was used as an argument to a constructor call. This was fixed.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    SLIDESCPP-3292Porter: Incorrect generic structures translationBug
    SLIDESCPP-3243Prepare C++ code examples (v22.1)Task
    WORDSCPP-1149std::stream to System::IO::Stream wrapped ctor doesn’t compile on customer sizeBug
    CSPORTCPP-4830NuGet packages Aspose.Cells.Cpp and CodePorting.Native.Cs2Cpp.API cannot be used togetherBug
    SLIDESCPP-3359Implement the missing Char::IsWhiteSpace() methodNew feature
    CSPORTCPP-4864Add MacOS buildsNew feature
    CSPORTCPP-4904Support CodePorting.Native Cs2CppTask
    PDFCPP-1785Fix System::WeakReference classBug
    WORDSCPP-1164Broken compiler detectionBug
    WORDSCPP-1163Possibility of adding -rpath='$ORIGIN/../lib'New feature
    PDFCPP-1790Fix PathGradientBrushBug
    SLIDESCPP-3380Fix RegressionTests_v22_2.SLIDESJAVA_37693 testBug
    CSPORTCPP-4945Lambda capture holders are missingBug
    WORDSCPP-1145Port performance testsTask
    WORDSCPP-1157Too slow TestTxt.TestJira17890Enhancement

    Public API and Backward Incompatible Changes

    1. Some pointer type declarations (e. g. StreamPtr) were moved from the global namespace to ‘System’ namespace.
    2. The supported glibc version will be changed in the upcoming releases.
    3. The new IEnumerable-level iterators and iterators for collections with duck typing will be introduced in one of the upcoming releases. The code which is dependent on EnumeratorBasedIterator or DuckTypedIterator may require some changes.