К примеру есть такой простой код
class obj
{
int i;
public:
obj() : i(0) {}
obj(int j) : i(j) {}
obj(const obj& z) : i(z.i) {}
obj operator=(const obj& z)
{
i = z.i;
return (*this);
}
void print()
{
cout << i << endl;
}
~obj(){}
};
int main()
{
obj a(1);
a = obj(2); //C26444 Avoid unnamed objects with custom construction and destruction (es.84)
a.print();
return 0;
}
в строчке
a = obj(2);
visual studio 2019 кидает предупреждение
Avoid unnamed objects with custom construction and destruction (es.84).
Поискал в гугле, но ничего понятного не нашел, буду признателен любой помощи
В описании сообщения в документации (https://docs.microsoft.com/en-us/visualstudio/code-quality/c26444?view=vs-2019) сказано, что данное предупреждение генерируется в том числе при игнорировании нетривиальных результатов вызовов функций.
Именно такое такое игнорирование происходит при вызове вашего оператора присваивания из-за того, что ваш оператор присваивания почему-то возвращает свой результат по значению.
Поменял обьявление
obj operator=(const obj& z)
на
obj& operator=(const obj& z)
warning пропал, почему - загадка.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я пытаюсь сравнить два элемента массива, текущий и предыдущий, ставлю break; чтобы закончить выполнение цикла и выводится такое сообщение в консоль...
Прошу помощиПри нажатии на кнопку с названием "BUTTON"(условно), выполняется запись значения 1 в переменную A
Надо при помощи Graphics нарисовать на Bitmap'e текст и сохранить его как файл (png) С английским текстом всё нормально, а с русским нет