to_string用于在c ++中具有用户定义名称的枚举

时间:2016-05-09 06:43:17

标签: c++ enums

我希望c ++中的某些内容尽可能接近该用法。

enum foo
{
    bar_0 = "hello",
    bar_1 = "world"
};
 //..
 cout << to_string(bar_0) << " " << to_string(bar_1);

输出&#34; hello world&#34;。

我知道看起来像这样的解决方案

ENUM foo
{
    bar_0 ,
    bar_1
};
 //..
 cout << to_string(bar_0) << " " << to_string(bar_1);
 //>bar_0 bar_1

和像这样的解决方案

 eunm foo
{
    bar_0 ,
    bar_1
};

 std::string foo_to_string[] = { "hello", "world"}
//+ some static assert of the sizes

外面有什么东西更甜吗? 我想要的是enum-value和字符串在同一行

P.S。:我接受含有一些暗侧cpp-宏观魔法的解决方案

修改

为什么这不重复?

我的问题与标记为的重复不同,因为我想要自定义字符串而不是枚举值的名称。有人可以说,我可以改变枚举值的名称,这通常不起作用。例如error-msg。

  enum Error_msg
  {
          you_are_using_internet_behind_a_proxy,
  };

没有人想使用这种error-msg和enum-value名称。

0 个答案:

没有答案