Вы добавляете два int
, что составляет 4 байта в вашем случае, тогда как std::string::size_type
, вероятно, 8 байтов в вашем случае. Упомянутое преобразование происходит, когда вы делаете:
text[i + M]
, который является вызовом std::string::operator[]
, принимающим std::string::size_type
в качестве параметра.
Использование std::string::size_type
, которое обычно совпадает с size_t
.
g cc не дает никаких предупреждений об этом, даже с -Wall -Wextra -pedantic
, так что я думаю, что вы активировали действительно каждое предупреждение, которое вы можете, или что-то подобное