MyClass* const Func(const std::string& statename)因为这个coverity给出了错误
在返回类型上解析警告(PW.USELESS_TYPE_QUALIFIER_ON_RETURN_TYPE)类型限定符是没有意义的。
我们真的需要移除这里的const吗?
发布于 2012-01-23 11:02:53
警告是正确的。不需要MyClass* const。它应该是简单的MyClass*。然而,您不需要删除它,但您应该删除它。
原因是,理论上MyClass* const会阻止编辑Func()的返回值。但是,即使没有const,这也是不可编辑的,因为这里的不是lvalue.See 演示。因此,如果使用/不使用const,编译器将始终生成错误,以尝试修改Func()的返回值。
发布于 2012-01-23 10:53:25
返回类型中的const (MyClass* const)确实是完全没有意义的。同时,它只会使代码更加冗长,不会有什么害处。我个人会把它移走的。
要理解为什么没有意义,请考虑以下几点:
MyClass* p = Func(statement);const有什么不同?
换句话说,返回T* const在概念上与返回const int没有什么不同。
发布于 2012-01-23 10:51:39
您不需要删除const来获得工作代码,但是如果没有无意义的const,代码肯定会更好。“错误”前面的“警告”字也是这么说的。
https://stackoverflow.com/questions/8970450
复制相似问题