zoukankan      html  css  js  c++  java
  • C++11 auto 与 右值

    auto: 

    auto T = xxx; // 产生一个变量,自动推导变量类型。  存在变量拷贝的消耗。
    auto& T = xxx; // 产生一个变量的引用,自动推导变量类型。减少拷贝的消耗。另外,如果右边的值是一个右值,则引用无效。
    auto&& T = xxx; // 由右边的类型决定T 的类型,比起auto& 而言auto&& 得到的类型更准确。同时可以将右值获取到。

    左值:

      传统意义上的变量我们可以理解它们为左值,对于左值我们可以使用 & 符号对其取地址。这是区别左值与右值最简单直接的方法。

    右值:
      其理想状态下,它不生成变量,故没有地址一说。编译时对右值取地址(&)操作将报错。
      它的传递比左值(变量)的传递更快,因为没有任何的拷贝消耗。
      对于函数参数,除非存在T&& 右值作为参数对函数进行重载(专门用于右值),否则const T& 类型的参数是可以接收任何的参数。

      对于右值来说没有const 说法,它本身就是一个常量。

  • 相关阅读:
    用户与组
    初识linux
    权限管理
    认识vim 编辑器
    文件归档
    路由相关术语
    Access、Hybrid和Trunk
    #error作用
    交换芯片收发包的 DMA 实现原理
    linux网络学习
  • 原文地址:https://www.cnblogs.com/suyunhong/p/6344240.html
Copyright © 2011-2022 走看看