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

    CodePorting.Native Cs2Cpp 22.1

    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 new implementation for System::Xml was provided. Previously, we had custom implementation which was based on the libxml2 and libxslt libraries. The new version is based on the ported CoreFX code.
    2. The Readme files were added to the Nuget and downloadable packages.
    3. The double-conversion library was upgraded to 3.1.7 version.
    4. The events_with_custom_accessors node was supported in the porter configuration files. It makes it possible to inform the porter on custom events in non-ported code.

    Minor fixes

    1. The compound assignment operators now work with the ported structures containing corresponding arithmetic operators.
    2. The comparison operators for the structures that have IsNull method were fixed.
    3. The force_const_ref_parameters option was imrpoved. If applied to the class constructor, it also affects generated member MakeObject function (if any), thus improving the performance of the ported code.
    4. Unwanted dependencies were removed from make_const_ref.h.
    5. This-comparison was optimized in the ported code. SmartPtr instance is no longer created.
    6. The Qt conversion functions were updated at GitHub.
    7. The shaping for symbolic fonts was disabled, like in .Net.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-4664Add README to the Nuget and Downloads packagesEnhancement
    SLIDESCPP-3274Improve arithmetic operators translationBug
    SLIDESCPP-3278Fix comparison of structures with defined IsNull methodBug
    CSPORTCPP-4632force_const_ref_parameters doesn’t affect MEMBER_FUNCTION_MAKE_OBJECT_DECLARATIONBug
    SLIDESCPP-3061Integrate ported System.Xml code into CodePorting.Native.Cs2Cpp libraryNew feature
    SLIDESCPP-3115Add the ported code to CodePorting.Native.Cs2Cpp libraryTask
    SLIDESCPP-3116Resolve asposecpplib porter’s tests compilation errorsTask
    SLIDESCPP-3120Fix failed ported testsTask
    SLIDESCPP-3131Find and apply profitable porter optionsTask
    SLIDESCPP-3132Replace ‘for’ loops with ‘foreach’ loops where possibleTask
    SLIDESCPP-3135Resolve compilation errors in LinuxTask
    SLIDESCPP-3142Find and try to enable disabled System.Xml testsTask
    SLIDESCPP-3151Fix failed product’s testsTask
    SLIDESCPP-3068Improve the ported code readabilityTask
    SLIDESCPP-3166Apply performance improvements to System.Xml implementationTask
    SLIDESCPP-2867Add documentation comments for System.Xml code ported from CoreFXTask
    SLIDESCPP-3223Rework CollectionBase implementation in CoreFX code used for System.Xml portingTask
    SLIDESCPP-3195Fix merge request issues with System.Xml code ported from CoreFXTask
    SLIDESCPP-3193Fix regressions occurred after performance optimizations in System.Xml portTask
    SLIDESCPP-3264Synchronize System.Xml ported code with the latest CodePorting.Native.Cs2Cpp library changes (2021/49)Task
    SLIDESCPP-3076Fix failed aspose_xml_gtest testsTask
    SLIDESCPP-3136Fix failed tests in LinuxTask
    SLIDESCPP-3208Fix newly detected reference cycles in System.Xml code ported from CoreFXTask
    CSPORTCPP-4767Fix Regex issue with the new System::XmlTask
    SLIDESCPP-3266Fix XmlRegexIssue.TestXmlRegexIssue testTask
    SLIDESCPP-3286Investigate System.Xml runtime errors reported by Tasks teamTask
    CSPORTCPP-4818Review code changesTask
    CSPORTCPP-4618Add Double-conversion build job for WindowsTask
    TASKSCPP-1692Avoid excess SmartPtr creation when compare with ‘this’ pointer.Enhancement
    CSPORTCPP-4846Fix tests for ‘develop’ branchBug
    CSPORTCPP-4835Drop libxml2 and libxslt licenses from pdf fileTask
    CSPORTCPP-4090Add tests for Qt converters to Jenkins sequenceTask
    SLIDESCPP-3296Fix RegressionTests_v22_1.SLIDESNET_42964Bug

    Public API and Backward Incompatible Changes

    1. The implementation of System::Xml classes was completely reworked. Some APIs may have become unavailable. Some APIs may have changed. The new API is much closer to such of .Net. Please use the API reference for more information.
    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.
    4. Some declarations (e. g. StreamPtr) will be removed from the global namespace in the upcoming releases.