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. 2018
    6. CodePorting.Native Cs2Cpp 18.12

    Major Features

    1. original_tests_names option is added to disable prefixing tests names with categories names.
    2. force_include_enum option is added to enabling adding ‘#include’ directives for enums instead of generating forward declarations in all cases.

    Minor fixes.

    1. Region::IsVisible(PointF) method is implemented.
    2. Tests stub file (list of tests in ported project) is now sorted by test name.
    3. The problem is fixed for ‘finally’ block operating on variables that have already been freed by ‘return’ statement (moving constructor optimization issue).
    4. System::Convert::FromBase64String() now throws exception of correct FormatException type on input of unexpected format.
    5. DateTime constructors now throw valid ArgumentOutOfRangeException exceptions on out-of-range dates or monthes being passed to them.
    6. Callstack print of SmartPtr class destructor was ligtened by 1/3.
    7. Messages of NotImplementedException, NotSupportedException and CultureNotFoundException are fixed to match .NET ones.
    8. Order of constexpr fields in output files is fixed to avoid initialization fiasco.
    9. A bug is fixed blocking some messages from reaching porter.log.
    10. Messages for config errors now include file, line and position information.
    11. A bug is fixed in porter generating ‘gtest not found’ errors if current directory was not ‘bin/porter’.
    12. TEST_F macros in output files are now placed near the test methods they call to make debug easier

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    PDFCPP-817Fix issues with OriginlKit functional testsTask
    PDFCPP-834Fix Region.IsVisibleTask
    CSPORTCPP-2295Fix null reference after returning pointer used in ‘finally’ blockBug
    WORDSCPP-702System::Convert::FromBase64String throws an incorrect exception for invalid inputBug
    WORDSCPP-696System::DateTime implementation doesn’t catch exceptions from Boost.DateTimeBug
    CSPORTCPP-2302Investigate reducing destructors call stackInvestigation
    WORDSCPP-676Always add include directives for enums instead of forward declarationsTask
    WORDSCPP-360Reorder constexpr field declarationTask
    CSPORTCPP-2331porter.log missing entriesBug
    CSPORTCPP-2151improve porter error messages on config issuesTask
    CSPORTCPP-2153Porter not finding gtest if current directory is not asposecpplib/binBug
    CSPORTCPP-2327Attach TEST_F macros to corresponding test functionsTask
    WORDSCPP-683Unexpected exception suffix message for NotSupportedException exceptionBug

    Public API and Backward Incompatible Changes

    1. IsVisible(PointF) method is added into Region class {{code language#“cpp”}}PointF point(22.5, 90.2); bool visible # myRegion.IsVisible(point);```