enum class的输出重载
之前纠结enum class,其中一个问题就是,要输出type的名字,方便调试。
今天尝试了一下输出重载,没想到竟然可以。
测试如下,
#include <iostream> using namespace std; enum class Type { TEXT, _EOF }; ostream& operator << (ostream& out,Type tp) { switch(tp) { case Type::TEXT: out << " TEXT ";break; case Type::_EOF: out << " _EOF ";break; default:; } return out; } int main() { Type A = Type::TEXT; Type B = Type::_EOF; cout << A << B << endl; return 0; }
还是Python的__name__好用啊。