考虑一下,我有以下enum课程:
enum class TestEnum
{
None = 0,
Foo,
Bar
};
Run Code Online (Sandbox Code Playgroud)
我想指定ostream operator ( << )这个enum类,所以我可以写:
std::cout << "This is " << TestEnum::Foo;
Run Code Online (Sandbox Code Playgroud)
并得到以下输出This is Foo。
我的问题是:
是否有存储枚举“名称说明符”的地方?(即对于enum class TestEnum 来说,它是None,Foo和Bar)所以我可以编写一个函数(或最多是函数模板)来指定ostream运算符,如下所示TestEnum:
std::ostream& operator<< ( std::ostream& os, TestEnum aEnum ) {
return std::string( aEnum.name() );
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我是这样做的:
std::ostream& operator<< ( std::ostream& os, TestEnum aEnum ) {
switch( aEnum ) …Run Code Online (Sandbox Code Playgroud)