我们在编写程序时经常会用到enum枚举类型,使用非常方便。但是当枚举定义较多时,在LOG打印时输出值很难直观的明白其含义,必须对照enum定义。本文介绍一个比较简单的方法,让LOG打印或std::cout输出枚举值时,直接输出文本。
#include <iostream>
// 枚举定义
enum RequestType {TYPE_POST, TYPE_GET};
// 重载enum RequestType类型的<<运算符
inline std::ostream& operator<<(std::ostream& os, const RequestType req_type) {
switch (req_type) {
case RequestType::TYPE_POST: {
os << "TYPE_POST";
break;
}
case RequestType::TYPE_GET: {
os << "TYPE_GET";
break;
}
default: {
os << "UNKNOWN";
break;
}
}
return os;
}
int main()
{
auto A = RequestType::TYPE_POST;
auto B = RequestType::TYPE_GET;
// 测试cout输出
std::cout << A << " - " << B << std::endl;
return 0;
}
// 输出效果:TYPE_POST - TYPE_GET
yan 23.8.17