C++11自定义字面量如何实现,能否详细解释一下?
- 内容介绍
- 文章标签
- 相关推荐
本文共计807个文字,预计阅读时间需要4分钟。
1. 示例:C++11新标准引入了用户自定义字面量,也称为自定义后缀操作符。通过实现一个后缀操作符,可以将字面量转换为所需类型。例如:`long double operate`
1.示例
C++11新标准中引入了用户自定义字面量,也叫自定义后缀操作符,即通过实现一个后缀操作符,将申明了该后缀标识的字面量转化为需要的类型。考察如下代码:
long double operator"" _mm(long double x) { return x / 1000; } long double operator"" _m(long double x) { return x; } long double operator"" _km(long double x) { return x * 1000; } int main() { cout << 1.0_mm << endl; //0.001 cout << 1.0_m << endl; //1 cout << 1.0_km << endl; //1000 return 0; }
编译并运行:
0.001
1
1000
实际上,自定义字面量一般用于用户自定义的构造类型(结构体与类)。假如入我们有如下一个表示颜色的类。
本文共计807个文字,预计阅读时间需要4分钟。
1. 示例:C++11新标准引入了用户自定义字面量,也称为自定义后缀操作符。通过实现一个后缀操作符,可以将字面量转换为所需类型。例如:`long double operate`
1.示例
C++11新标准中引入了用户自定义字面量,也叫自定义后缀操作符,即通过实现一个后缀操作符,将申明了该后缀标识的字面量转化为需要的类型。考察如下代码:
long double operator"" _mm(long double x) { return x / 1000; } long double operator"" _m(long double x) { return x; } long double operator"" _km(long double x) { return x * 1000; } int main() { cout << 1.0_mm << endl; //0.001 cout << 1.0_m << endl; //1 cout << 1.0_km << endl; //1000 return 0; }
编译并运行:
0.001
1
1000
实际上,自定义字面量一般用于用户自定义的构造类型(结构体与类)。假如入我们有如下一个表示颜色的类。

