Table of ContentsTable of Content Search 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 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 2021 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 HomeCodePorting.Native Product FamilyCodePorting.Native Cs2CppRelease Notes2019CodePorting.Native Cs2Cpp 19.4CodePorting.Native Cs2Cpp 19.4Major Features 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.Support for CppSkipTest attribute was added allowing it to skip tests in gtest by placing attribute.Autoproperties initialization in constructor was fixed for the case when no setter is provided.Regex implementation was switched from boost::regex to PCRE2 library causing performance increase. Some previously unsupported syntaxes were supported.boost library used was upgraded to 1.69.Size of Skia library being used was optimized.Minor fixes Include directive for enums used in class implementation was moved from .h files to .cpp files.Types conversion genration was fixed for ‘##’ and ‘!#’ operators when they are defined for translated class.Implicit type conversion operators were supported by porter.gtest version used was updated to actual master branch.‘CppSkipEntity’ and ‘Ignore’ attributes are now taken into account when adding baseclass’es tests into current class.NUnit.Framework.Assert.Warn() method translation was supported.C4715 warnings were suppressed for translation of try-finally statement with finally_statement_as_lambda option enabled.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 KeySummaryCategoryWORDSCPP-758Add support for skipping tests with GTEST_SKIP()New FeatureCSPORTCPP-2626Fix project name in the packagesEnhancementCSPORTCPP-2584Change product name in license checkingEnhancementWORDSCPP-767force_include_enum#true shouldn’t include private enumsEnhancementPDFCPP-932Fix CsToCppPorter - types convertion in equality/inequality operatorsEnhancementPDFCPP-933CsToCppPorter - implicit conversion to base typeEnhancementPDFCPP-939Port Aspose.Font.Tests project: FormatterConverterEnhancementPDFCPP-940CsToCppPorter - fix AddBaseClassTestsEnhancementPDFCPP-937Port Aspose.Font.Tests projectEnhancementCSPORTCPP-2020Fix Regex issuesEnhancementEMAILCPP-188Prepearing Aspose.Email for C++ release 19.01EnhancementBARCODECPP-395Support Aspose.BarCode for C++EnhancementCSPORTCPP-2606Switch asposecpplib to compact Skia build with is_official_build flagEnhancementWORDSCPP-766Disable C4715 warnings for code with try-finally statementsEnhancementWORDSCPP-760Incorrect porting of autoproperties initialization in ctorBugWORDSCPP-764Implement AsposeAssert.AreCollectionsEqual assertionBugPublic API and Backward Incompatible Changes Stubs to GetFileName(), GetFileLineNumber() and GetFileColumnNumber() methods of System::Diagnostics::StackFrame class were added.Boolean-parameterized System::Diagnostics::StackTrace constructor was implemented.System::Reflection::MethodBase::get_ReflectedType() method was implemented.Implementation of Regex-related classes was changed. Some internally used methods may have been added and/or removed.Stubs for System::Runtime::Serialization::FormatterConverter class were added.