C++ 11中的auto是否会使编译时间更长?

Ken*_*Lee 11 c++ performance c++11

auto abc = 5566;
Run Code Online (Sandbox Code Playgroud)

据我所知,编译器知道abcint在编译时,所以它不会影响运行时性能.

但是,它是否会使编译时间更长?

提前致谢.

fre*_*low 33

auto比一个字符长int,所以词法分析器肯定要做更多的工作.

另一方面,编译器不再需要检查用户是否提供了合适的类型,因此我最好的猜测是auto稍微快一些.

最后,您可能不应根据性能考虑在类型推断和显式类型之间做出决定.意图和清晰度应该是决定因素.

  • "`auto`比`int`长一个字符,所以lexer肯定要做更多的工作." - 我相信我们在这里有一个胜利者. (12认同)
  • 如果`int`后跟十个空格但是'auto`后面只跟一个?:-)不过,该死的好笑. (8认同)
  • @sehe编译器已经知道初始化器的类型.否则,如果变量类型错误,则无法给出编译器错误. (4认同)
  • 如果我们担心词法分析器必须做的工作,那么典型的"自动使用案例"中的类型是什么,类型是`std :: vector <std :: tuple <int,int >> :: const_iterator`? (2认同)