为什么此代码会导致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()};
^~~~
答案 0 :(得分:0)
警告是不言自明的。代码按照您的预期进行编译和运行,但编译器建议您通过删除程序中没有用的变量来优化代码(声明一个稍后在程序中没有的变量)。