クラスのメンバーである列挙型の << 演算子をオーバーロードするにはどうすればよいですか。具体的には、以下のコードがあります。
#include <iostream>
using namespace std;
namespace foo {
class bar {
public:
enum a { b, c, d};
static void print() {
cout << b << endl;
}
};
ostream& operator<< (ostream& os, bar::a var) {
switch (var) {
case bar::b:
return os << "b";
case bar::c:
return os << "c";
case bar::d:
return os << "d";
}
return os;
}
}
int main() {
foo::bar::print();
return 0;
}
「1」ではなく「b」を印刷するように印刷機能を取得するにはどうすればよいですか?