Skip to content

src: use stricter compile-time guidance

SnapshotSerializerDeserializer::GetName() appears to confuse static analysis such as Coverity.

This changes the function structure to a sequence of if-else blocks and marks all branch conditions as constexpr. (Unfortunately, this results in a dangling else keyword in the V macro.)

As a side effect, this change ensures that GetName<T>() can only be called for known types T (instead of returning an empty string). As per a request in the PR discussion, this change does not ensure that GetName<T>() can only be called for known types T and instead still returns an empty string in that case.

Also use std::is_unsigned_v instead of !std::is_signed_v.

Merge request reports

Loading