Trying to understand usage of ! in the function Succeeded

I am trying to figure out why they have used it !! while returning the class in the function Succeeded() { return !!*Class; } . As normally I use a single ! denoting Not or != not equal to. I am still new to programming and while finding online I am not able to find any example using or what purpose does it serves. This code is from unreal ConstructorHelpers.h

bool Succeeded()
{
return !!*Class;
}