C++11 新特性之operator "" xxx
从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 ;
}
Output:
The person' name is Xiao Ming
在std::literals::chrono_literals的实现用,也用了类似的手段:
constexpr std::chrono::milliseconds operator "" ms(unsigned long long ms);
实现如下:
constexpr std::chrono::milliseconds operator ""ms(unsigned long long ms)
{
return chrono::milliseconds(ms);
}
例子:
#include <iostream>
#include <chrono> int main()
{
using namespace std::chrono_literals;
auto d1 = 250ms;
std::chrono::milliseconds d2 = 1s;
std::cout << "250ms = " << d1.count() << " milliseconds\n"
<< "1s = " << d2.count() << " milliseconds\n";
}
Output:
250ms = milliseconds
1s = milliseconds
C++11 新特性之operator "" xxx的更多相关文章
- C++11新特性之operator "" xxx(const char *, size_t n)
从C++11开始,我们可以使用以下形式通过常量字符串构造自定义类型, 比如: class Person { public: Person(const std::string& name): _ ...
- C++11新特性总结 (二)
1. 范围for语句 C++11 引入了一种更为简单的for语句,这种for语句可以很方便的遍历容器或其他序列的所有元素 vector<int> vec = {1,2,3,4,5,6}; ...
- [转载] C++11新特性
C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...
- 在C++98基础上学习C++11新特性
自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性.近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料.因为自己有C++98的基础,所以从C++98过 ...
- C++11新特性——range for
很多编程语言都有range for语法功能,自C++11起,终于将这个重要功能加入C++标准中.range for语句,可以方便的遍历给定序列中的每个元素并对其执行某种操作. 1.基本语法 for(d ...
- C++11新特性之一——Lambda表达式
C++11新特性总结可以参考:http://www.cnblogs.com/pzhfei/archive/2013/03/02/CPP_new_feature.html#section_6.8 C++ ...
- C++11新特性应用--实现延时求值(std::function和std::bind)
说是延时求值,注意还是想搞一搞std::function和std::bind. 之前博客<C++11新特性之std::function>注意是std::function怎样实现回调函数. ...
- 【C++11新特性】 C++11智能指针之weak_ptr
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr.在学习weak_ptr之前最好对shared_ptr有所了解.如果你还不知道shared_ptr是何物,可以看看我的另 ...
- C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)
因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...
随机推荐
- python使用stomp连接activemq
一.安装ActiveMQ服务 1. 当使用windows时,安装参考:https://blog.csdn.net/WuLex/article/details/78323811 启动:运行activem ...
- FastDFS使用
1.在linux系统中安装FastDFS服务image-server.7z 2.导入FastDFS jar包 fastdfs_client_v1.20.jar 3.创建配置文件fastdfs_clie ...
- PYTHON-进程 子进程
并发编程 学习目标: 见35复习 1.操作系统 什么是操作系统 操作系统的两大作用: 批处理操作系统: 操作系统发展史: 多道技术***** 产生背景: 两大核心点: 应用软件的优化的核心:***** ...
- 洛谷P3343 [ZJOI2015]地震后的幻想乡 [DP,概率期望]
传送门 思路 题目给了一个提示:对于\(n\)个\([0,1]\)的随机变量,其中第\(k\)小的期望大小是\(\frac{k}{n+1}\). 这引导我们枚举边的相对大小的全排列,然后求最小生成树 ...
- 一 期末架构1 centos7 简介
一 centos7 安装 和差异 虚拟机配置好硬件 第一张网卡NAT添加第二张网卡选择LAN区段 安装前修改内核 变更网卡名 net.ifnames=0 biosdevname=0 回车 ...
- Online tools
Explore online vulnerability for servers and IoT devices : https://www.shodan.com get dumped leaked ...
- 爬虫框架 Scrapy
一 介绍 crapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可用 ...
- 最新版 IntelliJ IDEA2018.3.x 破解教程
https://www.cnblogs.com/Candies/p/10050831.html
- fire workflow总结
一.Fire WorkFlow核心1.IPersistenceService存储服务.Fire Workflow 缺省情况下使用hibernate 进行数据库存取.如果你的系统不是使用hibernat ...
- lambda表达式——写多线程
JDK1.8 中Lambda 表达式的出现,基本可以取替原来的匿名类实现多线程的方式.下面列举常用的常用的三种情况. 一.普通开启异步线程 new Thread(() -> System.o ...