Very nice solution to make enums printable with X-macros:
langs.def:
X(XQuery)
X(CPlusPlus)
X(XPath)
X(JavaScript)
X(Java)
main.cpp:
#include <iostream>
enum Langs {
# define X(a) a,
# include "langs.def"
# undef X
};
char const* const langs_str[] = {
# define X(a) #a,
# include "langs.def"
# undef X
};
std::ostream& operator<<(std::ostream& os, enum Langs c)
{
return os << langs_str[c];
}
int main()
{
std::cout << XQuery << " " << XPath << std::endl;
}
Output:
./main
XQuery XPath
No comments:
Post a Comment