首页 > 编程语言 >C++自定义字面量用法(operator"")

C++自定义字面量用法(operator"")

时间:2022-11-25 10:57:00浏览次数:42  
标签:return 字面 自定义 double long C++ operator pos1

下面举个c++内部的字面量用的例子:

unsigned int v1 = 20U; 
long v2 = 30L;
unsigned long v3 = 40UL;

是不是很好奇数字后面 U、L、UL。

在举个栗子实现字面量方法:

在c++11引用了新的标准:用户自定义字面量,也交自定义后缀名操作符。

#include <vector>
#include <string>

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 operator"" S(unsigned long long a) { return (int)a; }


std::vector<std::string> operator"" _C(const char* pData, size_t nSize) {
    //对字符串进行切割
    std::string data = pData;
    std::vector<std::string> valueList;
    std::string::size_type pos1 = 0;
    std::string::size_type pos2 = data.find(';');
    while (std::string::npos != pos2)
    {
        valueList.push_back(data.substr(pos1, pos2 - pos1));
        pos1 = pos2 + 1;
        pos2 = data.find(';', pos1);
    }
    valueList.push_back(data.substr(pos1));
    return valueList;
}

 

错误定义字面量:

int operator"" A(double a) { return (int)a; } //编译器错误

 

注意:字面量传值类型包括:const char*、long double、unsigned long long

 

标签:return,字面,自定义,double,long,C++,operator,pos1
From: https://www.cnblogs.com/caiyingyong/p/16924387.html

相关文章

  • C++ 宏的一个高级用法---定义函数
    #pragmaonce//利用宏声明方法利用该宏#defineDECLARE_TEST_METHOD(_T)\ _TTest##_T(_T&);\ _TTest##_T##1(_T&);classDemo{public://声明int......
  • C/C++语言 ++i 与 i++ 区别
    记忆小技巧,看++的位置,如果++在前,就是先自加,再赋值,如果++在后,就是先赋值再自加。 #include<stdio.h>intmain(){inti=0;intj=++i;pri......
  • C++课本的练习题及答案(第七章)
    第7章练习题同步练习7.1一、选择题1.在下列运算符中,不能重载的是(   )。(A)!                    (B)sizeof           (C)new       ......
  • C++学习笔记——static
    //#include<iostream>//usingnamespacestd;////classTen//{//private://staticintc;//当静态成员函数在私有成员下定义,类外不可对其进行访问......
  • C++学习笔记——友元函数
    //#include<iostream>//usingnamespacestd;////classStu//{//protected://private://intage;//voidfun()//{//age=12;//......
  • C++学习笔记——构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——析构函数
    //#include<iostream>//usingnamespacestd;////classFive//{//public://intn;//Five()//定义一个构造函数//{//cout<<"调用......
  • C++学习笔记——带参构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——this指针
    //#include<iostream>//usingnamespacestd;////classSix//{//public://inta;//Six(inta)//{//用this指针来区分局部变量和......
  • C++学习笔记——常函数
    //#include<iostream>//usingnamespacestd;////classSeven//{//public:////构造函数和析构函数不能定义为常函数//inta;////Seven()//{//......