Стоит ли обращать внимание на данный warning: "narrowing conversion"?

Данный код выдаёт предупреждение о смене типов с char к int, вызванной методом toupper(char):

#include <iostream>
#include <cstring>
#include <cctype>

int main()
{
    char str1[20];
    char str2[20];

    strcpy(str1, "My name is ");
    strcpy(str2, "alex");

    for (int i = 0; str2[i]; i++)
    {
        str2[i] = toupper(str2[i]);
    }

    strcat(str1, str2);

    std::cout << str1 << std::endl; // OUT: My name is ALEX

    return 0;
}

Вопрос в том, стоит ли воспринимать подобные предупреждения, учитывая, что переход внутри функции от char к int кажется вполне естественным?

Если же всё же стоит, то вопрос в том, как в данном случае преобразовать тип наиболее правильно по современным стандартам языка?

P.S IDE - Clion


Ответы (0 шт):