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;
        }
    )";
相关推荐
yunn_4 分钟前
单例模式两种实现方法
开发语言·c++·单例模式
sinat_2554878126 分钟前
IDEA:查找文件/类
java·ide·设计模式·intellij-idea
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第77题】【Mysql篇】第7题:回表查询与全表扫描的区别?
java·开发语言·数据库·mysql·面试
lulu12165440781 小时前
Claude Code SpringBoot技能体系架构设计与演进
java·人工智能·spring boot·后端·ai编程
callJJ1 小时前
Nacos 详解——从概念到实战
java·spring boot·spring·spring cloud·微服务·nacos
小马爱打代码2 小时前
Spring源码 第三篇:Spring 源码深度拆解:循环依赖 + 三级缓存
java·spring·缓存
罗超驿2 小时前
5.Java线程创建全攻略:5种写法 + 高频面试题解析
java·开发语言·java-ee
阿维的博客日记2 小时前
怎么理解Filter不是在afterCompetition里面remove掉ThreadLocal里面的东西,而是说在finally块里面remove
java
Simon523142 小时前
反射------5.26学习小计
java·开发语言·spring boot
程序员老邢2 小时前
《技术底稿 42》查新功能通用化改造:从单一期刊到多源命中,缓存与表结构一次重构
java·后端·缓存·重构·技术底稿