代码之家  ›  专栏  ›  技术社区  ›  Jabberwocky

for语句中自动变量的推导类型

  •  0
  • Jabberwocky  · 技术社区  · 7 年前

      for (auto loopcontrol = 0; loopcontrol < 10; loopcontrol++)
      {
         ...
      }
    

    这是什么类型的 loopcontrol

    int ,但为什么不呢。 long ?

    是那种 0

    2 回复  |  直到 7 年前
        1
  •  4
  •   bolov    7 年前

    auto 从初始化表达式推断变量的类型(它是初始值设定项类型的衰减类型)。在您的示例中 loopcontrol 是什么类型的 0 0 int

        2
  •  1
  •   rakesh.sahu    7 年前

    根据文件,

    对于变量,自动变量的类型将从其初始值设定项中推导出来。一旦确定了初始值设定项的类型,编译器将使用 template argument deduction 从函数调用。

    对于函数,返回类型将从其返回语句中推导出来(从C++14开始)。

    对于非类型模板参数,类型将从参数中推导出来(从C++17开始)。