diff --git a/core/foundation/src/TClassEdit.cxx b/core/foundation/src/TClassEdit.cxx index 392dc7092e726..e12cd8d40244e 100644 --- a/core/foundation/src/TClassEdit.cxx +++ b/core/foundation/src/TClassEdit.cxx @@ -1274,15 +1274,13 @@ int TClassEdit::GetSplit(const char *type, vector& output, int &nestedLo string TClassEdit::CleanType(const char *typeDesc, int mode, const char **tail) { - static const char* remove[] = {"class", "const", "volatile", nullptr}; - auto initLengthsVector = []() { - std::vector create_lengths; - for (int k=0; remove[k]; ++k) { - create_lengths.push_back(strlen(remove[k])); - } - return create_lengths; - }; - static std::vector lengths{ initLengthsVector() }; + constexpr static std::array remove{"class", "const", "volatile"}; + constexpr static auto lengths = []() constexpr { + std::array ret{}; + for (std::size_t i = 0; i < remove.size(); i++) + ret[i] = std::char_traits::length(remove[i]); + return ret; + }(); string result; result.reserve(strlen(typeDesc)*2); @@ -1296,11 +1294,11 @@ string TClassEdit::CleanType(const char *typeDesc, int mode, const char **tail) } if (kbl && (mode>=2 || lev==0)) { //remove "const' etc... int done = 0; - int n = (mode) ? 999 : 1; + size_t n = (mode) ? std::size(remove) : 1; // loop on all the keywords we want to remove - for (int k=0; k