C++11 flexible enum library