为什么内置类型和类在未使用时会有不同的威胁?

时间:2016-09-27 11:13:09

标签: c++ gcc warnings unused-variables

为什么此代码会导致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()};
         ^~~~

Live on coliru

1 个答案:

答案 0 :(得分:0)

警告是不言自明的。代码按照您的预期进行编译和运行,但编译器建议您通过删除程序中没有用的变量来优化代码(声明一个稍后在程序中没有的变量)。