用户定义字面量的用法

C++11开始,允许用户定义字面量,将四种基本类型转换成我们需要的类型
前置知识:字面量

用户定义自变量形式为:

 返回类型 operator "" 用户自定义后缀(参数)

如:

//定义
constexpr int operator "" _S(double num)
{
    return (num + 0.5);
}
//使用
auto res = 2.6_S;    //res = int(2.6 + 0.5) = 3

其中用户自定义后缀尽可能使用“_”下划线作为开头,否则很可能会与C++原生的表示方式冲突,如2L其实是long long 2
然而用户定义字面量也不是随意定义的,有如下规则限制

1、字面量只可以使用四种基本类型:整型、浮点型、字符、字符串
2、若字面量为整型,参数只能为unsigned long long、const char*,且当unsigned long long无法容纳该字面量时,会将其转换为字符串,以’\0’结束,并调用const char *参数版本的字面量函数
3、若字面量为浮点型,参数只能为unsigned double 和const char *,当unsigned double过长时,也会调用const char *版本
4、若字面量为字符型,参数只能为一个char
5、若字面量为字符串,参数只能为const char* (注意是与,传入两个参数)size_t,即长度已知的字符串作为参数
6、operator "" [用户定义字面量后缀],注意中间必须有空格

图表来源:https://www.cnblogs.com/gyan083/p/16122633.html

基于用户定义自变量,我们将很方便使用指定类型的值,比如使用
240_V代表240V,使用30.6_INT代表30.6转换成int的值。

通过运用用户定义自变量,最主要的作用是减少代码量,通过使用字面量函数的临时变量返回值,可减少局部变量的定义,使代码书写起来也更加清晰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值