用整数编译字符串常量的时间替换

xen*_*xen 3 c++ c++11

我有一个预定义的字符串常量映射列表到我的代码库之外的数字.整数映射到程序内部的数据,但我想在代码中使用更易读的字符串常量.生成的二进制文件应仅包含数字,并且根本不包含字符串常量.是否可以在编译时用映射的整数替换字符串常量?

我想要实现的基本上是这个代码:

getData("a string constant here");
Run Code Online (Sandbox Code Playgroud)

我想把它变成这个:

getData(277562452);
Run Code Online (Sandbox Code Playgroud)

这可能通过宏或constexpr?

Iva*_*son 5

#define astrconst 277562452
Run Code Online (Sandbox Code Playgroud)

要么

enum Strs { astrconst = 277562452 };
Run Code Online (Sandbox Code Playgroud)