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.10

    CodePorting.Native Cs2Cpp 20.10

    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 overloading methods that accept System.IO.Stream with auto-generated ones which accept STL stream instead. CppIOStreamWrapper attribute and force_wrap_iostream option are introduced to enable this.
    2. use_stream_based_io option was supported to translate System.Console invocations into std::cout operations.
    3. DNS support was added into System::Net namespace.

    Minor fixes

    1. False positive both CppConstMethod and CppConstWrapper attributes apply to same method warnings were fixed. The closest attribute is now tracked down properly.
    2. Incorrect CsToCppPorter::Details::MemoryManagement::BindLifetime() overload selection was fixed. Comments were added to CsToCppPorter::Details::MemoryManagement methods for better understanding of how they work and which methods should be used.
    3. Incorrect documentation for STDIOStreamWrapperBase and PropertyInfo classes was fixed.
    4. Zero length graphics path elements are no longer kept, same as in .Net.
    5. Queue(int capacity) constructor was fixed to create a zero-length queue.
    6. ICollection ::Contains() method no longer throws NotImplementedException.
    7. Some internal state checks were optimized in System::IO classes.
    8. USING_STATEMENT_BEHAVIOR_START and USING_STATEMENT_BEHAVIOR_END macros were added to make it easier invoking the code related to using statement translation from C++ code.
    9. Performance of is operator translation for final classes was improved.
    10. Custom System::Details::fast_equals() function was supported.
    11. Stack trace of SmartPtr destructor was reduced.
    12. SmartPtr::dynamic_pointer_cast of null-pointers was fixed.
    13. LinearGradientBrush transformation methods were implemented.
    14. Missing SetTemplateWeakPtr() methods generated by porter were fixed.
    15. Matching filename masks was fixed for some cases.
    16. HEAD request type was supported by HttpClientHandler class.
    17. Custom XmlTextReader::ReadSubtreeInnerXml() method was supported.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-3557Issues with 'override' subsystemBug
    CSPORTCPP-3579Make porter generate wrappers for methods which have Stream argumentsNew feature
    CSPORTCPP-3678Fix doxygen warningsBug
    SLIDESCPP-2538Fix RegressionTests_v19_10.SLIDESNET_33555 test (Linux)Bug
    SLIDESCPP-2581Fix a queue constructor which receive capacityBug
    SLIDESCPP-2563Fix "System::NotImplementedException" when invoking ICollection::Contains() methodBug
    PDFCPP-1411System::IO optimizationEnhancement
    CSPORTCPP-1833Add macros to use using wrapper in C++ code.Enhancement
    SLIDESCPP-2536Investigate solutions to improve performance of "is" operatorEnhancement
    PDFCPP-1421Optimize ReverseSearchEnhancement
    WORDSCPP-1009Port Console.Write() and Console.WriteLine() calls using standart C++ stream-based I/OEnhancement
    CSPORTCPP-3692Optimize shared pointersEnhancement
    SLIDESCPP-2593Fix "System::NotImplementedException" when invoking LinearGradientBrush::TranslateTransform() methodTask
    WORDSCPP-1015Fix method System::IO::Directory::GetFiles()Bug
    WORDSCPP-1018TestUtil::VerifyWebResponseStatusCode throws C++ exception with description "partial message"Bug
    WORDSCPP-1006Manually implement OdtParagraphReader.ParagraphProcessorNew feature
    EMAILCPP-247Porting DNS support, implement DNS feature in AsposecpplibNew feature

    Public API and Backward Incompatible Changes

    1. Namespace for version information-related symbols was actualized.
    2. Some redundant static and inline qualifiers were removed from public headers.