C++11新特性之operator "" xxx(const char *, size_t n)
2024-08-27 00:52:41
从C++11开始,我们可以使用以下形式通过常量字符串构造自定义类型, 比如:
class Person
{
public:
Person(const std::string& name): _name(name){}
std::string name() const {
return _name;
}
private:
std::string name;
} inline Person operator "" _psn (const char *name, size_t n)
{
return Person(std::string(name, n));
} int main()
{
auto person = "Xiao Ming"_psn;
std::cout<< "The person' name is " << person.name() << std::endl;
return ;
}
编译执行结果:
The person' name is Xiao Ming
如上述例子所示, 其中的_psn部分为开发者自定义的部分,如nlohmann/json就使用了这个新特性,使用
auto j = "{\"name\":\"Xiao Ming\"}"_json;
std::cout << j["name"] << std::endl;
即可由常量字符串”{\”name\”:\”Xiao Ming\”}” 构造出一个包含key为name, value为”Xiao Ming”的json对象
最新文章
- 熟悉MyEclipse
- Python-变量
- Gulp.js----比Grunt更易用的前端构建工具
- paper 111:图像分类物体目标检测 from RCNN to YOLO
- compilation filed Unable to write to path xxxxxx 遇到这种情况的话
- SQLServer分页存储过程
- Asp.Net 之 基本控件FileUpload上传控件
- C#中如何只保留小数点后面两位?
- ThinkPHP的全部配置选项
- akoj-1059-Picture
- 最基本的mysql
- windows jdk安装
- LinkedHashMap 根据PUT顺序排序Map
- Java_常遇问题(一)
- Windows上结合使用Flume和Kafka
- MySQL存储过程中使用SELECT …INTO语句为变量赋值
- java学习书单
- JAVA设计模式详解(一)----------策略模式
- View类的XML属性、相关方法及说明
- php单例模式实现对象只被创建一次 mysql单例操作类
热门文章
- linux中硬盘分区、格式化、挂载
- TCP/IP学习笔记11--无线通信: 无线通信的种类, 点对点通信协议
- cuda-convnet在Ubuntu12.04+CUDA5.5下的配置
- [Nuget] - ";Runtime error: Could not load file or assembly &#39;System.Web.WebPages.Razor, Version=3.0.0.0&#39;"; 问题之解决
- Asp.Net Core 调用第三方Open API查询物流数据
- dedecms5.7怎么安装百度编辑器
- zblog常用到的几个标签介绍
- python 之 数据库(多表查询之连接查询、子查询、pymysql模块的使用)
- 机器学习之Bagging与随机森林笔记
- Mock常用占位符一览