如何在扩展为某些文字表达式的宏上使用用户定义的文字运算符?
例如:
std::string operator""_str(const char* sz, std::size_t len)
{
return std::string(sz);
}
其中的实现类似于:
#define expr "expression"
auto str = expr _str;
答案 0 :(得分:6)
答案 1 :(得分:4)
您需要另一个执行令牌粘贴的宏:
#define CONCAT2(A, B) A##B
#define CONCAT(A, B) CONCAT2(A, B)
auto str = CONCAT(expr, _str);