我已经设置了编译器/Za
选项来禁用lanquage扩展,以便编译器严格使用标准ISO C ++。
这是我收到以下警告的示例接口类
警告C4180:应用于函数类型的限定符没有意义; 忽略
它是关于const限定符的返回类型的函数,如果我删除const,警告消失但我不想那样做,我想要启用lanqage扩展。
我的问题是:这个警告是否合理? 如果不是那么我将使用pragma来禁用警告但在此之前我想确定此警告是“误报”
因为以下类是正确的ANSI ISO C ++ Isn'it?所以警告应该被禁用?
class IBet
{
public:
IBet() { };
virtual ~IBet() = 0 { };
virtual const float parentChips() const = 0; // Warning C4180
virtual const short parentChilds() const = 0; // Warning C4180
// ...
};
答案 0 :(得分:7)
两个函数的返回值声明为const
。由于它是通过值传递的,因此没有任何意义。您可以删除const
,因为它绝对没有用处。