Core: Replace recursive utility expansions

Remove three recursive template helpers from Core utilities:

  • Replace recursive serializer traversal with an ordered C++14 pack expansion.
  • Replace recursive fixed-size array reduction with a C++14 constexpr loop.
  • Replace the recursive compile-time floor-log2 metaprogram with a C++14 constexpr loop.

The serializer expansion preserves argument order, empty-pack behavior, device annotations, serialization, and deserialization.

The array reduction removes an obsolete ICC 13 workaround while preserving empty-array identity handling and left-to-right reduction. It intentionally uses T as its stable accumulator and return type, converting each reducer result back to T.

The floor-log2 helper preserves the existing behavior over the full unsigned int range, including returning zero for inputs zero and one.

Edited by Florian Maurin

Merge request reports

Loading
Loading