- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码 here我正在使用 -Weffc++ -Wall -Wextra 进行编译。
基本上我有这个片段:
class base
{};
class test : public base
{
public:
base& operator=(int)
{
return *this;
}
};
我收到警告:warning: 'operator=' should return a reference to '*this' [-Weffc++]
。我不太确定该警告是什么意思。我读到这完全没问题(即返回一个推导的 this)。
有什么方法能让我的编译器开心吗?
最佳答案
将您的代码更改为:
class test : public base
{
public:
test& operator=(int)
{
return *this;
}
};
每个人都会很高兴,而不仅仅是您的编译器。
PS:如果您想了解更多,-Weffc++ 产生的警告是本书推荐的摘录:
Effective C++: 55 Specific Ways to Improve Your Programs and Designs, Addison–Wesley, 1992, (ISBN 0-321-33487-6).
关于c++ - 返回 *this 给出 Weffc++ 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171958/
这个问题在这里已经有了答案: Understanding -Weffc++ (3 个答案) 关闭 4 年前。 我很难理解这个错误。我正在编译 -Weffc++旗帜。 此结构编译正常。 struct
考虑以下程序: #include struct S { S (){} private: void *ptr = nullptr; std::string str = "";
我对 Weffc++ 警告有理解上的问题。 main.cpp: In constructor ‘B::B()’: main.cpp:13:1: warning: ‘B::a’ should be in
我有一个名为 Coord 的类...它有实例数据 x、y。我想重写 * 运算符,以便 * 运算符可用于将 Coord 乘以整数或 double 值!这是我提出的解决方案: Coord& Coord::
我有一些代码 here我正在使用 -Weffc++ -Wall -Wextra 进行编译。 基本上我有这个片段: class base {}; class test : public base { p
我尝试用 std::shared_ptr 编译非常简单的树节点。在我的编译器选项中,我使用了 -Weffc++ 和 -Werror 但它抛出了 2 个我不理解的错误,因此我无法想象解决方案。 最小示例
我收到 -Weffc++ 发出的警告,这似乎是错误的。我可以用第二双眼睛来确认: template class CLASS_TYPE, typename T> class some_class { t
我对一个分为不同子项目的大型项目使用 boost build。这里是 jamroot 文件: project : requirements debug:DEBUG releas
我有一个使用很多很多库的大项目。其中一些是 HDF5、PugiXML、Boost.ASIO、Qt、MuParser 等等。这些库有的是header包含的,有的是预编译的,有的是我自己编译的。我想使用
假设我有这样一个类: class MyClass { private: vector myMember; public: MyClass(const Y
我想知道,-Weffc++ 标志是否有等效的 MSVC(++)?它是几号? 我在 MS website 上的编译器警告/错误列表中没有看到类似的内容. 最佳答案 没有任何等价物。 Visual C++
struct Bar { Bar() {} }; struct Foo { Foo() = default; Bar m_bar; }; int main() { Fo
这是一个重载的||在我的类中定义的运算符: bool operator|| (const MyClass& v) const { return ......; //some calculat
我是一名优秀的程序员,十分优秀!