Чтобы добавить к объяснению здесь, как и что происходит. Во-первых, я не смог воспроизвести вашу проблему, но у меня есть вариант, который не предупреждает о clang и gcc, но все еще не тот, который вы хотите:
std::string dlus = std::to_string(roz);
dlus += dlus.size();
Здесь используется доступная перегрузка:
basic_string& operator+=( CharT ch );
и он молча преобразует целое число в символ. Даже с -Wall
он не помечен как плохой.
Теперь, вот где clang-tidy входит . С этим правилом этот код помечается как возможно неправильный, и это указывает, что вы должны использовать std::to_string
, чтобы правильно преобразовать число в строку перед добавлением.
Если мы знаем, какой компилятор вы использовали, то мы также можем выяснить, какой конструктор использовался в этом случае.