У меня есть код Вот что я компилирую с -Weffc ++ -Wall -Wextra.
В основном у меня есть этот фрагмент:
class base
{};
class test : public base
{
public:
base& operator=(int)
{
return *this;
}
};
и я получаю предупреждение: warning: 'operator=' should return a reference to '*this' [-Weffc++]
, Я не совсем уверен, что делать с этим предупреждением. Я прочитал, что это совершенно нормально (то есть, чтобы вернуть это).
Есть ли способ, которым я могу сделать мой комплимент счастливым?
Измените свой код на:
class test : public base
{
public:
test& operator=(int)
{
return *this;
}
};
И все будут счастливы, а не только ваш компилятор.
PS: Если вы хотите узнать больше, предупреждения -Weffc ++ являются выдержкой из рекомендаций, приведенных в этой книге:
Эффективный C ++: 55 конкретных способов улучшить ваши программы и разработки,
Addison – Wesley, 1992, (ISBN 0-321-33487-6).
Других решений пока нет …