gpt4 book ai didi

c++ - 使用预处理器制作用户定义的文字

转载 作者:太空狗 更新时间:2023-10-29 20:45:10 27 4
gpt4 key购买 nike

我正在尝试编写一个宏来从常规字符串文字中创建用户定义的文字。以下两行应创建标记 "foobar"_literal:

#define AS_LITERAL(TEXT) TEXT ## _literal
AS_LITERAL("foobar");

但是GCC-4.7的预处理器报如下错误:

error: pasting ""foobar"" and "_literal" does not give a valid preprocessing token

如何正确地做到这一点?

最佳答案

它适用于适当定义的 operator ""_literal(也使用 GCC 4.7):

#include <cstdlib>

#define AS_LITERAL(TEXT) TEXT ## _literal

constexpr int operator "" _literal(char const*, std::size_t) { return 0; }

int main() {
int x = AS_LITERAL("abc");
}

关于c++ - 使用预处理器制作用户定义的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com