Почему этот код приводит к 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()};
^~~~
Предупреждения говорят сами за себя. Код компилируется и выполняется так, как вы ожидаете, но компилятор советует вам оптимизировать код, удаляя переменные, которые не используются в вашей программе (объявляя переменную, которая не появляется позже в программе).
Других решений пока нет …