diff --git a/Sofa/framework/Helper/src/sofa/helper/StringUtils.h b/Sofa/framework/Helper/src/sofa/helper/StringUtils.h index 8de84cde877..2982e5ba0ed 100644 --- a/Sofa/framework/Helper/src/sofa/helper/StringUtils.h +++ b/Sofa/framework/Helper/src/sofa/helper/StringUtils.h @@ -124,17 +124,20 @@ constexpr static auto makeFixedSizeTypeName() constexpr std::size_t d = sofa::helper::numDigits(N); constexpr auto suffix = type::TypeTrait::suffix; - std::array s{}; + constexpr std::size_t prefixSize = prefix.size(); + constexpr std::size_t suffixSize = suffix.size(); + + std::array s{}; std::copy(prefix.begin(), prefix.end(), s.begin()); int n = N; for (int i = d - 1; i >= 0; --i) { - s[prefix.size() + i] = static_cast('0' + n % 10); + s[prefixSize + i] = static_cast('0' + n % 10); n /= 10; } //suffix - std::copy(suffix.begin(), suffix.end(), s.begin() + prefix.size() + d); - s[prefix.size() + d + suffix.size()] = '\0'; + std::copy(suffix.begin(), suffix.end(), s.begin() + prefixSize + d); + s[prefixSize + d + suffixSize] = '\0'; return s; }