• decltype 类型指示符


            有时会遇到这种情况:希望从表达式的类型推断出要定义的变量的类型,但是不想用
    该表达式的值初始化变量。为了满足这一要求, C++11 新标准引入了类型说明符
    decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达或
    并得到它的类型,却不实际计算表达式的值。

    1.基本使用

    decltype (expression)

            这里的括号是必不可少的,decltype的作用是“查询表达式的类型”,因此,上面语句的效果是,返回 expression 表达式的类型。注意,decltype 仅仅“查询”表达式的类型,并不会对表达式进行“求值”。

    2.判别规则

    • 如果括号内是单的变量,推导类型为变量的类型

    • 如果括号内是函数调用,推导类型为函数的返回类型
    • 如果括号内是表达式,推导类型为表达式的结果类型
      • 如果表达式的结果是一个左值,结果类型为--对左值类型的引用

    • 如果表达式的结果是一个右值,结果类型为--右值类型

    • 如果括号内是一个加上括号的变量,结果是一个左值的表达式,所以是左值引用

     

     

            当一个对象被用作右值的时候,用的是对象的值(即将这个对象的值赋值或者拷贝给其他空间);当一个对象被用作左值的时候,用的是对象的身份,就是在内存中的位置(即我们是对这个对象的空间里的东西进行操作)。需要右值的地方可以用左值替代,但不能把右值当成左值使用。
    要注意:变量都是左值!右值就是一个单纯的数据!右值只能绑定到将要销毁的对象上!

  • 相关阅读:
    Elasticsearch-01-es概念及安装
    【python】defaultdict设置初始值
    05 【函数(上)】
    java基本语法总结
    【PHP】手术麻醉系统源码
    驱动开发4 使用字符设备驱动的分步实现编写LED驱动(LED亮灯)
    [Git CLion] 规范Commit格式
    机器学习(四十五):使用Flask构建机器学习web
    电容笔和Apple pencil有啥区别?电容笔四大口碑比较好的品牌推荐
    Maven 私服 Nexus3
  • 原文地址:https://blog.csdn.net/Scarlett2025/article/details/127531620