簡體   English   中英

將枚舉值映射到C ++中的字符串

[英]Mapping enum values to strings in C++

有沒有辦法在運行時將枚舉的值映射到名稱? (我正在和海灣合作委員會一起建設。)

我知道GDB可以做到這一點而且我願意使用一些不可移植的東西和調試數據。


編輯:我正在尋找一個解決方案,不需要修改原始枚舉聲明,也不需要在映射函數中復制所有值。 我已經知道如何做到這兩點。

有效; 我想要一個函數,它在格式化運行時枚舉值時執行GDB所做的任何事情。

如果你有韌性,你可以創建一個工具來解析枚舉的源文件,生成翻譯函數並將它們添加到源代碼中。 通過更多精力,您可以為Eclipse和Emacs等編輯器編寫插件,以便為您執行此操作。

也許它可以在Perl腳本中完成?

如果您不想花時間使用GCC符號信息, gcc-xml會以可重用的XML格式(包括枚舉名稱)為您提供有關C ++源的信息。

簡化示例...此來源:

enum E {
  e1 = 1,
  e2 = 42
};

變為:

<GCC_XML>
  <!-- ... -->
  <Enumeration name="E">
    <EnumValue name="e1" init="1"/>
    <EnumValue name="e2" init="42"/>
  </Enumeration>
  <!-- ... -->
</GCC_XML>

這可能對您有所幫助:

“stabs”調試格式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM