The "Implement method" function doesn't work with operators. Look at this example.
#pragma once
namespace airplane {
namespace crashs {
class Grounding
{
public:
Grounding();
~Grounding();
public:
const Grounding& operator=( const Grounding& assign );
bool operator==( const Grounding& compare ) const;
bool operator!=( const Grounding& compare ) const;
int operator-( const Grounding& minus ) const;
const Grounding& operator+=( const Grounding& plus );
const Grounding& operator-=( const Grounding& minus );
const Grounding& operator/=( const Grounding& divide );
const Grounding& operator%=( const Grounding& modulo );
const Grounding& operator*=( const Grounding& multiply );
const Grounding& operator|=( const Grounding& or );
const Grounding& operator&=( const Grounding& and );
const Grounding& operator--();
const Grounding& operator<<( const std::string& text );
};
}
}
The result is:
const Grounding& airplane::crashs::Grounding::=( const Grounding& assign */ )
{
}
bool airplane::crashs::Grounding::==( const Grounding& compare */ ) const
{
}
bool airplane::crashs::Grounding::!=( const Grounding& compare */ ) const
{
}
int airplane::crashs::Grounding::( const Grounding& minus ) const
{
}
const Grounding& airplane::crashs::Grounding::+=( const Grounding& plus */ )
{
}
const Grounding& airplane::crashs::Grounding::-=( const Grounding& minus */ )
{
}
const Grounding& airplane::crashs::Grounding::/=( const Grounding& divide */ )
{
}
const Grounding& airplane::crashs::Grounding::%=( const Grounding& modulo */ )
{
}
const Grounding& airplane::crashs::Grounding::*=( const Grounding& multiply */ )
{
}
const Grounding& airplane::crashs::Grounding::|=( const Grounding& or */ )
{
}
const Grounding& airplane::crashs::Grounding::&=( const Grounding& and */ )
{
}
const Grounding& airplane::crashs::Grounding::-()
{
}
const Grounding& airplane::crashs::Grounding::<<( const std::string& text )
{
}
All operators are affected from this problem. But most operators in this example resulting IMO into two bugs. The first is that the "operator" keyword is missing, the second is a processing problem with default arguments. I think somewhere you matching the "=" character, but because the "=" ist contained in the method name, something goes wrong.