Had the same problem and ended doing something similar.
I declared the enum normally, as you did.
But for operations I would instead create a conversion from your enum to flag:
#define TOFLAG(Enum) (1 << static_cast<uint8>(Enum))
That way, you can just do normal flag operations:
bool bFlagFound = Flags & TOFLAG(EGridPointFlags::Discovered)
// or
bool bFlagFound = Flags & TOFLAG(MyEnumVariable)
That was my final solution, found it to be the easier way.
Greetings!