宏上的用户定义的文字运算符
User-defined Literal Operator on Macros
如何在扩展为某个文字表达式的宏上使用用户定义的文字运算符?
例如:
std::string operator""_str(const char* sz, std::size_t len)
{
return std::string(sz);
}
实施类似于:
#define expr "expression"
auto str = expr _str;
相邻的字符串文字会自动连接([lex.ext]/8(,因此
auto str = expr ""_str;
会起作用。
您需要另一个执行标记粘贴的宏:
#define CONCAT2(A, B) A##B
#define CONCAT(A, B) CONCAT2(A, B)
auto str = CONCAT(expr, _str);
演示
相关文章:
- 为什么比较运算符如此快速
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 使用C++中的模板和运算符重载执行矩阵运算
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 增量运算符与后缀混淆
- 一个关于在C++中重载布尔运算符的问题
- 运算符C++ "delete []"仅删除 2 个前值
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 宏上的用户定义的文字运算符
- Arduino IDE 错误 - 无法找到数字文字运算符"运算符""f900ff"
- 尝试编写进程内存并获取用户定义的文字运算符未找到
- 找不到数字文字运算符“运算符”“+BLA”
- 错误:找不到数字文字运算符"运算符 " " U"?
- Arduino IDE告诉我找不到字符串文字运算符“运算符”“DRIVE”
- 什么是 C++20 的字符串文字运算符模板?
- 下划线、名称和文字运算符
- 在类中定义友元用户定义的文字运算符
- 比较 unicode 和 wchar_t C++:"找不到数字文字运算符"运算符" " F""
- 带字符串文字的前缀与中缀运算符*
- 文字运算符模板在 GCC 4.8 中不起作用