CodePorting.Native Cs2Cpp 20.10
Major Features
- 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.
- use_stream_based_io option was supported to translate System.Console invocations into std::cout operations.
- DNS support was added into System::Net namespace.
Minor fixes
- False positive both CppConstMethod and CppConstWrapper attributes apply to same method warnings were fixed. The closest attribute is now tracked down properly.
- 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.
- Incorrect documentation for STDIOStreamWrapperBase and PropertyInfo classes was fixed.
- Zero length graphics path elements are no longer kept, same as in .Net.
- Queue(int capacity) constructor was fixed to create a zero-length queue.
- ICollection ::Contains() method no longer throws NotImplementedException.
- Some internal state checks were optimized in System::IO classes.
- 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.
- Performance of is operator translation for final classes was improved.
- Custom System::Details::fast_equals() function was supported.
- Stack trace of SmartPtr destructor was reduced.
- SmartPtr::dynamic_pointer_cast of null-pointers was fixed.
- LinearGradientBrush transformation methods were implemented.
- Missing SetTemplateWeakPtr() methods generated by porter were fixed.
- Matching filename masks was fixed for some cases.
- HEAD request type was supported by HttpClientHandler class.
- 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
Key | Summary | Category |
---|---|---|
CSPORTCPP-3557 | Issues with 'override' subsystem | Bug |
CSPORTCPP-3579 | Make porter generate wrappers for methods which have Stream arguments | New feature |
CSPORTCPP-3678 | Fix doxygen warnings | Bug |
SLIDESCPP-2538 | Fix RegressionTests_v19_10.SLIDESNET_33555 test (Linux) | Bug |
SLIDESCPP-2581 | Fix a queue constructor which receive capacity | Bug |
SLIDESCPP-2563 | Fix "System::NotImplementedException" when invoking ICollection::Contains() method | Bug |
PDFCPP-1411 | System::IO optimization | Enhancement |
CSPORTCPP-1833 | Add macros to use using wrapper in C++ code. | Enhancement |
SLIDESCPP-2536 | Investigate solutions to improve performance of "is" operator | Enhancement |
PDFCPP-1421 | Optimize ReverseSearch | Enhancement |
WORDSCPP-1009 | Port Console.Write() and Console.WriteLine() calls using standart C++ stream-based I/O | Enhancement |
CSPORTCPP-3692 | Optimize shared pointers | Enhancement |
SLIDESCPP-2593 | Fix "System::NotImplementedException" when invoking LinearGradientBrush::TranslateTransform() method | Task |
WORDSCPP-1015 | Fix method System::IO::Directory::GetFiles() | Bug |
WORDSCPP-1018 | TestUtil::VerifyWebResponseStatusCode throws C++ exception with description "partial message" | Bug |
WORDSCPP-1006 | Manually implement OdtParagraphReader.ParagraphProcessor | New feature |
EMAILCPP-247 | Porting DNS support, implement DNS feature in Asposecpplib | New feature |
Public API and Backward Incompatible Changes
- Namespace for version information-related symbols was actualized.
- Some redundant static and inline qualifiers were removed from public headers.