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;
        }
    )";
相关推荐
Peregrine917 分钟前
C++ - > 类和对象
java·c++·算法
余醉 | dtminer21 分钟前
56%的保护效应藏在乳腺密度里:Nat Commun 高分中介孟德尔随机化全 R 管线拆解(附核心图)
开发语言·r语言·孟德尔随机化
2501_9339232523 分钟前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
Wang's Blog25 分钟前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 消息转换器
java·中间件·java-rabbitmq
Re_zero1 小时前
一次 SSE 断流排查:PrintWriter 吞掉了我的 IOException
java·后端
我是人✓1 小时前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
夜之眷属2 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
c++11:fuction包装器
开发语言·c++
蜗牛互联网2 小时前
Java标准HTTP调用多模态模型的票据抽取前置校验
java·人工智能·python·http
工具派2 小时前
Agent 不是玄学:用 Java 状态机思维理解 LangGraph
java·人工智能·python