возвращая * это дает Weffc ++ предупреждение - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть некоторый код здесь , который я компилирую с -Weffc ++ -Wall -Wextra.

В основном у меня есть этот фрагмент:

class base
{};

class test : public base
{
public:
    base& operator=(int)
    {
        return *this;
    }
};

и я получаю предупреждение: warning: 'operator=' should return a reference to '*this' [-Weffc++]. Я не совсем уверен, что делать с этим предупреждением. Я читал, что это совершенно нормально (то есть, чтобы вернуть это).

Есть ли способ, которым я смогу порадовать своего компилятора?

1 Ответ

0 голосов
/ 04 сентября 2018

Измените свой код на:

class test : public base
{
public:
     test& operator=(int)
     {
        return *this;
     }
};

И все будут счастливы, не только ваш компилятор.

PS: Если вы хотите узнать больше, предупреждения -Weffc ++ являются выдержкой из рекомендаций, найденных в этой книге:

Эффективный C ++: 55 конкретных способов улучшить ваши программы и разработки, Addison – Wesley, 1992, (ISBN 0-321-33487-6).

...