C++11 原始字符串字面量R“()“

原始字符串字面量(Raw String Literals)

R"()"是C++11引入的一项特性,它允许创建不需要转义字符 的字符串字面量。字符串中包含特殊字符、换行符和其他转义字符时,不需要反斜杠转义它们。

  • 原始(Raw) :不用使用反斜杠转移某些字符,直接书写字符串的原始内容

  • 字面量:程序中固定值的符号的一种表示,通常是表示常量的一种方式。常见字面量

    • 整数字面量:42
    • 浮点数字面量:3.14
    • 字符字面量:'A'
    • 字符串字面量:"Hello, World!"
    • 布尔字面量:true 或 false
    • 空指针字面量:nullptr(C++11及以后版本)

比如,在LearnOpenGL CN 中,表示一段shader代码,并未使用原始字符串字面量 ,就需要把所有换行符手动写出,如:

c 复制代码
const char* glslCode =
    "#version 330 core\n"
    "\n"
    "layout(location = 0) in vec3 inPos;\n"
    "layout(location = 1) in vec3 inCol;\n"
    "\n"
    "out vec3 fragColor;\n"
    "\n"
    "void main() {\n"
    "    fragColor = inCol;\n"
    "}\n";

如果使用原始字符串字面量:优雅

c 复制代码
    const char* glslCode = R"(
        #version 330 core

        layout(location = 0) in vec3 inPosition;
        layout(location = 1) in vec3 inColor;

        out vec3 fragColor;

        void main() {
            fragColor = inColor;
        }
    )";
相关推荐
Zane199415 分钟前
线程池进阶:如何科学设置线程数(结合实际业务场景复盘)
java·后端
SeaTunnel20 分钟前
Apache SeaTunnel 提交一个任务都经过了什么?
java·大数据·服务器·apache·etl·seatunnel
mifengxing23 分钟前
Java TreeSet
java·开发语言
编程风暴1 小时前
零基础数据分析项目模板+5条避坑红线
java·数据挖掘·数据分析
IKUN家族1 小时前
常见的依懒
java·服务器·数据库
王老师青少年编程1 小时前
2026年全国青少年信息素养大赛算法应用主题赛C++赛项【决赛】模拟卷(汇总)
c++·模拟卷·2026年·青少年信息素养大赛·算法应用主题赛·决赛
我命由我123451 小时前
Jetpack Compose - Material Design 断点范围、WindowSizeClass、针对不同屏幕尺寸创建预览、四类导航栏
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
linux-hzh1 小时前
百日算法修炼 · Day 05
java·算法
摇滚侠1 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 89-129
java·云原生·kubernetes
snow@li1 小时前
SpringBoot:依赖注入(DI)全景深度梳理与实战分析/@Autowired、@Resource、@Qualifier
java·spring boot·rpc