Documentation

    Table of Content
    • CodePorting.Native Product Family
      • CodePorting.Native Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Native Cs2Cpp
            • How to Use Command line to port and build Projects
            • How to Use GUI to port and build Projects
        • Developer Guide
          • Porting Simple C# Projects
            • Porting Simple Console Application
            • Porting Simple Library
            • Porting Simple NUnit Test
          • Porting Dependent C# Projects
            • Porting Dependent Console Application
            • Porting Dependent Library
            • Porting Dependent NUnit Test
          • Porting 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++
          • Qt support
          • 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 Native Cs2Cpp Attributes
          • CodePorting Native Cs2Cpp Configuration File
            • CodePorting.Native 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
            • Porter Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2022
            • 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.Native Product Family
    3. CodePorting.Native Cs2Cpp
    4. Release Notes
    5. 2019
    6. CodePorting.Native Cs2Cpp 19.4

    CodePorting.Native Cs2Cpp 19.4

    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. Product name was changed from ‘csPorter for C++’ to ‘CodePorting.Native Cs2Cpp’. Old product name was used for releases from 18.9 to 19.3. The new one is being used from 19.4 release onwards.
    2. Support for CppSkipTest attribute was added allowing it to skip tests in gtest by placing attribute.
    3. Autoproperties initialization in constructor was fixed for the case when no setter is provided.
    4. Regex implementation was switched from boost::regex to PCRE2 library causing performance increase. Some previously unsupported syntaxes were supported.
    5. boost library used was upgraded to 1.69.
    6. Size of Skia library being used was optimized.

    Minor fixes

    1. Include directive for enums used in class implementation was moved from .h files to .cpp files.
    2. Types conversion genration was fixed for ‘##’ and ‘!#’ operators when they are defined for translated class.
    3. Implicit type conversion operators were supported by porter.
    4. gtest version used was updated to actual master branch.
    5. ‘CppSkipEntity’ and ‘Ignore’ attributes are now taken into account when adding baseclass’es tests into current class.
    6. NUnit.Framework.Assert.Warn() method translation was supported.
    7. C4715 warnings were suppressed for translation of try-finally statement with finally_statement_as_lambda option enabled.
    8. Collections comparison in tests translation was improved.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    WORDSCPP-758Add support for skipping tests with GTEST_SKIP()New Feature
    CSPORTCPP-2626Fix project name in the packagesEnhancement
    CSPORTCPP-2584Change product name in license checkingEnhancement
    WORDSCPP-767force_include_enum#true shouldn’t include private enumsEnhancement
    PDFCPP-932Fix CsToCppPorter - types convertion in equality/inequality operatorsEnhancement
    PDFCPP-933CsToCppPorter - implicit conversion to base typeEnhancement
    PDFCPP-939Port Aspose.Font.Tests project: FormatterConverterEnhancement
    PDFCPP-940CsToCppPorter - fix AddBaseClassTestsEnhancement
    PDFCPP-937Port Aspose.Font.Tests projectEnhancement
    CSPORTCPP-2020Fix Regex issuesEnhancement
    EMAILCPP-188Prepearing Aspose.Email for C++ release 19.01Enhancement
    BARCODECPP-395Support Aspose.BarCode for C++Enhancement
    CSPORTCPP-2606Switch asposecpplib to compact Skia build with is_official_build flagEnhancement
    WORDSCPP-766Disable C4715 warnings for code with try-finally statementsEnhancement
    WORDSCPP-760Incorrect porting of autoproperties initialization in ctorBug
    WORDSCPP-764Implement AsposeAssert.AreCollectionsEqual assertionBug

    Public API and Backward Incompatible Changes

    1. Stubs to GetFileName(), GetFileLineNumber() and GetFileColumnNumber() methods of System::Diagnostics::StackFrame class were added.
    2. Boolean-parameterized System::Diagnostics::StackTrace constructor was implemented.
    3. System::Reflection::MethodBase::get_ReflectedType() method was implemented.
    4. Implementation of Regex-related classes was changed. Some internally used methods may have been added and/or removed.
    5. Stubs for System::Runtime::Serialization::FormatterConverter class were added.