Properties (of pointer types), methods and indexers are now capable of returning constant references to backed fields. This behavior can be enabled for auto-properties using the new ‘force_const_ref_return_type_for_auto_properties’ option. For other properties, methods and indexers, use the CppConstRefReturnType attribute (only pointers and generic arguments are supported).
The System.Tuple class was supported.
The ‘default’ replecement of comment tag contents was introduced, see description of the ‘documentation_comments_translation’ configuration file node.
The ‘force_enum_flags_attribute’ option was supported by the porter. It generates the Flags-like operators for all enums being ported.
The porter used to crash with System.Runtime.CompilerServices.Unsafe lookup error on some machines. This was fixed.
The code generated for this object’s indexer access was optimized.
Decimal rounding performance was improved.
In some schemes of inheritance, the porter didn’t generate proper friend declarations to allow for internal members access. This was fixed.
Several issues were fixed with generating method overloads that accept the STL streams instead of Aspose ones. The CppIOStreamWrapperAttribute attribute was revised.
The System::Xml::Xsl::XslCompiledTransform::Transform() method used to throw exceptions on some documents. This was fixed.
Generation of the SetTemplateWeakPtr method on the nested classes was fixed.
User-defined conversion operators translation was fixed for the case of the generic types.
Compilability of the property compound assignment operators on GCC 6 was fixed.
The CppConstWrapper attribute misplaced method comments in translated code. This was fixed.
Inclusion related to assembly reflection support was fixed to avoid including internal headers from the public ones.
Please consult respective sections of our wiki for more information.
Full List of Issues Covering all Changes in this Release
Implement porter option for auto-properties getters, which made return type const SmartPtr<>& (for reference types)
System.Runtime.CompilerServices.Unsafe: file or assembly not found
Missing friend declaration caused by inheritance
Improve stream wrappers generation.
Enable CppConstRefReturnType attribute appliance to indexer properties and methods.
Fix decimal construction from floating point types for NaN/INF cases.
Implement System.Tuple class
XslCompiledTransform::Transform throws exception
Porter: Fix SetTemplateWeakPtr method export for nested classes
Improve translation of user-defined conversion operators
Porter: Fix CppIgnoreBaseType attribute behavior
Fix comments generated when CppConstWrapper attribute is applied
C# examples in API Reference for C++
Porter: Fix binary operations porting for enumerations without Flags attribute
Implement CppConstRefReturnType support for generic parameters
Preparing to release, test “Release build for build-220.127.116.117”
Public API and Backward Incompatible Changes
The CppIOStreamWrapper attribute now has argumentless constructor. 2-argumented form was retired - use 3 or 1 arguments instead.
The behavior of the CppIgnoreBaseType attribute was made consistent. From now on, C++-styled type names are not supported as arguments, and System.Object inheritance can only be ignored explicitly.