【发布时间】:2019-02-25 13:53:07
【问题描述】:
我想用一个宏来包装我项目中的每个字符串文字。我想确保我的项目中的每个字符串文字都用一个宏包装,并有一些外部工具帮助我找到没有用宏包装的字符串文字的位置。
有什么方法可以使用 Clang 插件来确保每个字符串文字都包含在宏中?
我要处理的案例:
-
#define MY_ASSERT(Y) {if(!(Y)) throw Exception(#Y); }#Y 应该被警告为未包装的字符串文字。
-
"a" "b" "c"它要求整个东西都在一个宏中,像这样:
MY_STR("a" "b" "c")
我如何使用 Clang 插件来做到这一点,或者一般有其他方法吗?
【问题讨论】:
-
我想用宏来包装我项目中的每个字符串字面量——我只是好奇:为什么?
-
@Swordfish - 嗯,一个突然想到的原因stackoverflow.com/questions/15498070/…
-
@Swordfish 我希望能够用各种语言的翻译替换一些字符串。发现用有时会翻译的宏包装每个字符串要容易得多,有时会帮助我们提供项目中需要翻译的已使用字符串的列表。
-
使用国际化框架??例如 Boost.Locale。
-
AFAIK 即使你使用 Boost.Locale 你仍然需要调用一个函数,字符串不会神奇地翻译。我希望每个字符串都被翻译,没有例外。 ??
标签: c++ clang clang-plugin