Почему встроенные типы и классы обрабатываются по-разному, когда они не используются?

Почему этот код приводит к 2 различным предупреждениям?

class Abc
{
public:
Abc() = default;
Abc(Abc const&) = default;
};

int main()
{
int val1{int()};
Abc val2{Abc()};
}

Вывод компиляции:

main.cpp: In function 'int main()':
main.cpp:10:9: warning: unused variable 'val1' [-Wunused-variable]
int val1{int()};
^~~~
main.cpp:11:9: warning: variable 'val2' set but not used [-Wunused-but-set-variable]
Abc val2{Abc()};
^~~~

Жить на колиру

1

Решение

Предупреждения говорят сами за себя. Код компилируется и выполняется так, как вы ожидаете, но компилятор советует вам оптимизировать код, удаляя переменные, которые не используются в вашей программе (объявляя переменную, которая не появляется позже в программе).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]