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++
          • What Converts to What
            • Abstract Classes
            • Auto Properties
            • Break Statements
            • Class Constructors
            • Continue Statements
            • Delegates
            • Do While Statemetns
            • Enums TypeCast
            • Enums
            • Events
            • Exceptions
            • Expected Exceptions
            • Finalizers
            • For Statements
            • ForEach Statements
            • Generic Classes
            • Generic Delegates
            • Generic Interfaces
            • Generic Methods
            • Generic Structs
            • If Statements
            • Indexers
            • Lambda Expressions
            • Methods
            • Nested Classes
            • Properties
            • Return Statements
            • Simple Class
            • Simple Interface
            • Simple Struct
            • Simple Test
            • Standard TypeCast
            • Static Class
            • Static Constructor
            • Static-Methods
            • Static Properties
            • Switch Statements
            • Test with Setup Methods
            • Throw Statements
            • Try Catch Finally Statements
            • Try Catch Statements
            • Try Finally Statements
            • Var Expressions
            • Virtual Methods
            • While Statements
          • 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
            • Using aliasing constructor to create a smart pointer
          • Cmake Support
          • Limitations and Bugs
            • Porter Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2020
            • CodePorting.Native Cs2Cpp 20.11
            • CodePorting.Native Cs2Cpp 20.12
            • 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
          • 2021
            • CodePorting.Native Cs2Cpp 21.1
          • 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
          • 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

    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
    1. Home
    2. CodePorting.Native Product Family
    3. CodePorting.Native Cs2Cpp
    4. Release Notes
    5. 2019
    6. CodePorting.Native Cs2Cpp 19.1

    Major Features

    1. Networking functionality is added into System::Net namespace.
    2. aspose_cpp library is switched to explicit exports. Internal members are no longer exported.
    3. Aliasing constructor is supported by SmartPtr class.
    4. Equals method overloads ambiguity is fixed when methods with different parameter names are added.
    5. Assertion faults now break whole test instead of current function only which caused inconsistency between C# and C++ behavior.
    6. MinGW 7.1 compiler is no longer supported.

    Minor fixes

    1. CppConstexpr attribute is fixed to work properly on generic class members.
    2. Missing include fixed when generating code using System::MakeObject() function but not referencing System::Array type.
    3. Issue with events declared in interfaces is fixed. Previously, duplicated code is being generated.
    4. Issue tranlating implicit casts when assigning to properties is fixed.
    5. Issue translating static events is fixed.
    6. gtest supported version is upgraded to #9ab640c.
    7. BitArray to null comparison translation is fixed.
    8. Inheritance from IDictionary<TKey,TValue> interface is now translated properly.
    9. 4-argument version of String.Concat() is supported.
    10. String::EndsWith() behavior is fixed for zero length substrings lookup.
    11. Queue and Stack containers now support CppWeakPtr(0) attribute to keep contained pointers weak.
    12. StringBuilder class now works with null objects properly.
    13. CppSkipDefinition attribute now works properly with destructors.
    14. A error is fixed for partial class porting when another class is present in the same file.
    15. Environment::GetFolderPath() is implemented on Windows.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    WORDSCPP-723Incorrect work of CppConstexpr attribute for generic classesBug
    PDFCPP-802Memory LeaksInvestigation
    EMAILCPP-178Implementing System.Net.* functionality in asposcpplibTask
    PDFCPP-849Preparing to releaseTask
    EMAILCPP-183Merge 18.11 release changes into Asposecpplib (Net implementation)Task
    CSPORTCPP-2387Switch aspose_cpp.dll to explicit exportsTask
    WORDSCPP-731Implement aliasing constructor for SmartPtrTask
    PDFCPP-877fix Asposecpplib StringBuilderTask
    WORDSCPP-739Implement the depth-first iterative traversal deconstructorTask
    WORDSCPP-581Include Html codec to portingNew feature
    PDFCPP-879Environment::GetFolderPath() impl (Windows)Task
    CSPORTCPP-1039Make test assertion faults abort the testTask

    Public API and Backward Incompatible Changes

    1. Several networking-related classes are added under System::Net namespace.
    2. Dependencies on non-public aspose_cpp library members will be breached. Use public API analogs instead.
    3. MinGW compiler support is stopped.
    4. WriteStartAttribute() and WriteEndAttribute() methods are implemented in System::Xml::XmlWriter and System::Xml::XmlTextWriter classes.
    5. TypeInitializationException exception type is implemented.
    6. DtdProcessing property is supported by XmlTextReader class.
    7. Missing versions of List::LastIndexOf() methods are implemented.