美文网首页
用户自定义字面量

用户自定义字面量

作者: 混世太保 | 来源:发表于2018-07-11 16:42 被阅读0次

    在c++11中,运行用户自定义字面量了。即你可以通过一个后缀来标识字面量是什么类型。

    自定义函数
    返回类型 operator "" _xxxx(unsigned long long v){
    return {(unsigned int)v};
    }

    如果字面量为整型数,那么字面量操作符函数只可接受unsinged long long 或者const char为其参数。当unsigned long long 无法容纳该字面量的时候,编译器会自动将字面量转换为以\0为结束符的字符串,并调用以const char为参数的版本进行处理。

    如果字面值为浮点型:,字面量操作符只接受 long double 或者 const char * 作参数. 同理, 如果 long double 容纳不下, 调用 const char * 版本处理函数.

    字面量为 const char *: 操作符参数只接受 (const char *, size_t_).

    字面值为 char: 字面量操作符参数只能为 char.

    在字面量操作符函数的什么中,operator "" 与用户自定义后缀之间必须有空格。

    后缀建议以下划线开始。不宜使用非下划线后缀的用户自定义字符串常量,会引起编译器警告。
    附上个例子

    struct Watt { unsigned int v; };
    
    Watt operator "" _w(unsigned long long v) {
            return {(unsigned int) v};
    }
    
    int main() {
            Watt capacity = 1024_w;
    }
    
    

    相关文章

      网友评论

          本文标题:用户自定义字面量

          本文链接:https://www.haomeiwen.com/subject/xpghpftx.html