zoukankan      html  css  js  c++  java
  • C++11 用户自定义字面值

    用户自定义字面值,或者叫“自定义后缀”更直观些,的主要作用是简化代码的读与写,比如:

    auto mo = chrono::seconds(+1);
    auto mo = +1s;

    这两行是等价的,但是使用后缀的方式明显更简洁。

    C++11允许用户创建自已的字面值。先看一个示例:

    #include <iostream>
    using namespace std;
    typedef unsigned long long ull;
    
    // C++11 2.14.8
    ull operator"" _dog(ull n)
    {
        return n*20000;
    }
    
    int main()
    {
        auto n = 3_dog;
        cout << "your wage is" << n << " RMB" <<endl;
    }

    自字义后缀用operator""定义,就是一种特殊的函数。后缀名必须以下划线开头,因为没有下划线的后缀是留给std用的。后缀的参数只能是unsigned long long、long double、const char*或者const char* + size_t。没了,它就是这么简单易上手又很实用的特性。一般来说适合编为后缀的是单位,如kg,km。

    C++14预定义了一些标准的字面量,s用于创建std::string,如 "hello"s;h、min、s、ms、us、ns用于创建std::chrono::duration;i、il、if用于创建复数complex<double>、complex<long double>、complex<float>。

  • 相关阅读:
    公司实习职位与要求
    段子
    Python 练习项目1 弹球游戏
    精准控制PWM脉冲的频率和数量
    ST Link 调试问题总结
    验证
    大道至简(第六章)读后感
    动手动脑
    大道至简(第五i章)读后感
    数组课后作业
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/5198947.html
Copyright © 2011-2022 走看看