C++用户定义字面量
用户定义字面量
C++11新规定的语法,用户可以自定义作用在字面量上的函数,由编译器完成传参和函数调用。
- 功能:让程序员自定义字面量后缀
- 语法:
operator""后缀名(参数),这个双引号只是个形式而已不必在调用时真的需要出现双引号 - 位置:只能是后缀(如
100km),不能是前缀
作用对象有以下四种基本类型的字面量
1. 整数字面量
语法:
返回类型 operator""后缀(unsigned long long 值)
示例:
1 | int operator""km(unsigned long long m) { |
2. 浮点数字面量
语法:
返回类型 operator""后缀(long double 值)
示例:
1 | double operator""deg(long double rad) { |
3. 字符字面量
语法(四种编码方式):
返回类型 operator""后缀(char 值)返回类型 operator""后缀(wchar_t 值)返回类型 operator""后缀(char16_t 值)返回类型 operator""后缀(char32_t 值)
示例:
1 | char operator""up(char c) { |
4. 字符串字面量(最常用!)
语法:
返回类型 operator""后缀(const char* str, size_t 长度)
示例:
1 | std::string operator""s(const char* str, size_t len) { |
- 对字符串字面量的处理非常特殊,编译器会不仅进会传入字符串字面量
const char*地址,还会传入这个字面量的长度(不包括\0)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星の夜!
