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;
        }
    )";
相关推荐
程序员小白条7 分钟前
我的第二份实习,学校附近,但是干前端!
java·开发语言·前端·数据结构·算法·职场和发展
钟琛......10 分钟前
java中父类和子类的成员变量可以重名吗
java·开发语言
一只小青团6 小时前
Python之面向对象和类
java·开发语言
qq_529835357 小时前
ThreadLocal内存泄漏 强引用vs弱引用
java·开发语言·jvm
景彡先生7 小时前
C++并行计算:OpenMP与MPI全解析
开发语言·c++
落笔画忧愁e7 小时前
扣子Coze飞书多维表插件添加数据记录
java·服务器·飞书
归去_来兮8 小时前
深度学习模型在C++平台的部署
c++·深度学习·模型部署
秋千码途9 小时前
小架构step系列08:logback.xml的配置
xml·java·logback
飞翔的佩奇9 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
pay4fun10 小时前
2048-控制台版本
c++·学习