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. 2020
    6. CodePorting.Native Cs2Cpp 20.12

    CodePorting.Native Cs2Cpp 20.12

    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. Porter is now capable of porting several classes overloaded by generic parameter count. These go into partial specialization of variadic template.
    2. Porter can now report an error if an in-config attribute does not apply to any item during the project porting. To make it do so, use ‘error_if_unused’ syntax as described at ‘Attributes in configuration file’ page.
    3. UDP sockets now handle timeouts properly. The implementation now uses async calls.
    4. The porter is now capable of porting ‘Assert.That(expr, Throws.TypeOf)’ and ‘Assert.That(expr, Is.Empty)’ Nunit checks.
    5. A new ‘enable_fast_rtti’ porter option was added making it possible to speed up casting operations (translations of c-style cast, ‘as’ and ‘is’ operators).

    Minor fixes

    1. A new ‘unexpected_override_as_warning’ porter option was added making it possible to switch ‘override is unexpected’ message from error to warning.
    2. LinkedList container was completely rewritten. It no longer leaks the memory.
    3. RefCount class doesn’t produce assertion fault if the counter goes beyond zero.
    4. Some previously missing types were added into porter’s typemap.
    5. Graphics::MeasureString now wokrs properly with the characters that are absent from the font being used and loaded from fallback one instead.
    6. Some cases of line cap drawing were fixed.
    7. Incorrect paths in cmake target files for Visual Studio projects were fixed.
    8. The performance of some Dictionary operations was improved.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-3866Make porter tests fail on porter errorsEnhancement
    BARCODECPP-426Support Aspose.BarCode for C++Task
    CSPORTCPP-3102Add warnings for unused config attributesEnhancement
    CSPORTCPP-3526LinkedList leaks memoryBug
    CSPORTCPP-3854MakeObject leakage detection improvementEnhancement
    SLIDESCPP-2661Porter: Using of CppIgnoreBaseType attribute mistakenly ignores System::Object base typeBug
    SLIDESCPP-2664Weekly meeting and current working activity (2020/49)Task
    SLIDESCPP-2631Fix indentation after ellipsisTask
    SLIDESCPP-2662Incorrect LineCap::NoAnchor handling in GraphicsPath::Widen() methodBug
    EMAILCPP-267UdpClient does not properly handle timeoutsBug
    WORDSCPP-966Support of Assert.That(expr, Throws.TypeOf) expressionsNew feature
    CSPORTCPP-3924Fix cmake targets filesBug
    SLIDESCPP-2596Improve performance of System::Cast and System::ObjectExt::Is operationsEnhancement
    WORDSCPP-967Support of Assert.That(expr, Is.Empty) expressionsNew feature
    SLIDESCPP-2595Improve performance of Dictionary<string, string> accessing operationsEnhancement

    Public API and Backward Incompatible Changes

    1. CppIgnoreBaseType attribute no longer can ignore System.Object inheritance implicitly. Explicit ignore still works.