I currently have a structure like this

```
struct foo
{
  UINT64 optionA = 0;
  UINT64 optionB = 0;
  UINT64 optionC = 0;
}

```

I am attempting to write a function for comparing two objects of `foo` based on `optionA` , `optionB` and `optionC`. Essentially what I would like the function to do is check if `optionA` is the same in both if no then return the lowest object back. If the `optionA` in both objects are the same then it will check `optionB` in both objects and would return the lowest one. If `optionB` are the same in both then it will look at `optionC` and return the lowest.

I am thinking that this could be accomplished by assigning a UINT64 no to each object.
Then assigning bits based on priority to that no and then comparing each and returning back the lesser one. I am not sure how to go about that approach any suggestions to do this would be appreciated.