Aspose.Tasks for C++ 21.11 Release Notes

All Changes

Key Summary Issue Type
TASKSNET-10377 System.OverflowException: TimeSpan overflowed because the duration is too long Bug
TASKSNET-10369 Fix Exception on loading the P6 XML file Bug
TASKSNET-3611 Fix formula parsing exceptions when opening the specific file Bug

Special notes for C++ users

Enumerators

Now the CODEPORTING_CURRENT_RETTYPE macro is used as the return type of the get_Current method. Now it is just a stub that do not modify its argument type, but in one of upcoming releases, it will return a reference instead of a shared pointer copy in the collections that store reference types or strings.

Generic ‘foreach’ enumeration translation rules

Now it is avoided to pre-declare the ‘foreach’ iterator before the cycle, as it was before. New optimized code looks like this:

auto x_enumerator = y->GetEnumerator();
while (x_enumerator->MoveNext())
{
   auto&& x = x_enumerator->getCurrent();
   // ...
}

Because of upcoming changes, you should avoid iterators pre-declaration. if you have a reason not to use range-based for to iterate over collections, please use template above instead.

For detailed information, please also refer to CodePorting.Native Cs2Cpp 21.11 release notes