Using an enum is more idiomatic in C++. It might make it harder to integrate with the C wrapper John is writing though. However John presumably already has this problem as there are other enums exposed on the interface.  Might be worth talking to see if moving to enums causes an issue.