定义一个字符串,其中的部分来自其他定义(非字符串)
Define a string with parts coming from other defines(non strings)
我试图创建一个版本字符串,使用时将其视为字符*。我正在使用
#define VERSION_MAJOR @cmakeproject_VERSION_MAJOR@
#define VERSION_MINOR @cmakeproject_VERSION_MINOR@
#define VERSION_PATCH @cmakeproject_VERSION_PATCH@
#define VERSION_STRING "" VERSION_MAJOR "." VERSION_MINOR "." VERSION_PATCH
在cmake配置之后,它看起来像
#define VERSION_MAJOR 1
#define VERSION_MINOR 2
#define VERSION_PATCH 3
#define VERSION_STRING "" VERSION_MAJOR "." VERSION_MINOR "." VERSION_PATCH
据我所知,编译时的VERSION_STRING最终看起来像
"" 1 "." 2 "." 3
并且,这会导致错误:expected ') '在数值常量
之前是否有办法使VERSION_STRING在编译时看起来像"1.2.3"?
stringization with slingshot应该可以做到:
#define QU(x) #x
#define QUH(x) QU(x)
#define VERSION_STRING QUH(VERSION_MAJOR) "." QUH(VERSION_MINOR) "." QUH(VERSION_PATCH)
将展开为"1" "." "2" "." "3"
,与"1.2.3"
相同
相关文章:
- 我无法在 qt 的C++代码中定义字符串
- 无法在模板参数中定义字符串文本
- 如何使用运算符>>在自定义字符串中输入多个单词?
- llvm,通过 C++ API 定义字符串和数组
- 字符串流中的自定义字符串输入
- 如何在Visual Studio Code tasks.json中定义C++字符串宏?
- C++ 使用链表的自定义字符串类中的重载 + 运算符
- 如何在 C++ 中安全地为 char *array 重新分配内存(它适用于自定义字符串类)
- 我可以在"setDefaultButton"中使用我自己的用户定义字符串吗
- 在编译器选项上定义字符串
- Xcode 4.5.2 libc++ std::bad_cast 实现自定义(字符串)流时
- Visual C Inliner组装程序并定义字符串
- 自定义字符串类实现建议
- 自定义字符串类中的常量字符*差异
- 如何在C++中重新定义字符串的 = 运算符
- 定义字符串时C++许多错误
- 如何在C++头文件中定义字符串参数-用Swift桥接
- 如何用C++递归地从二进制文件中读取自定义字符串
- 自定义字符串排序
- 带有自定义字符串比较器的字符串的priority_queue的C++向量