c++ - c++11中的auto是静态类型还是动态类型

标签 c++ c++11

C++11中的自动命令是静态绑定(bind)(打字)还是动态绑定(bind)?

即如果我有这个代码

auto x = 5;

编译器会决定“x”是一个 int,还是会在运行时发现它?

另外,下面代码中 x 的类型是什么?

auto x = 5, y = 4.5

最佳答案

这称为类型推断。键入仍然是静态的,但是您让编译器找出表达式的类型。

特别是 auto x = 5;,在编译时,is translated to int x = 5; .出于这个原因,您必须始终在初始化时提供明确的表达式。例如 auto x; wouldn't work .

关于c++ - c++11中的auto是静态类型还是动态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22897787/

相关文章:

c++ - 如何在 C++ 中执行 Y = aX + Y

c++ - std::future::wait_for 虚假唤醒?

c++ - 如何启动一个在应用程序退出时不关闭的线程? (Qt C++)

gcc - 为什么 GCC std::atomic 增量会产生低效的非原子组装?

c++ - 为什么 std::initializer_list 不是内置语言?

c++ - `boost::phoenix::static_cast_` 与标准库混合使用

C++ 11 不可复制类

c++ - 为什么第二个功能不等待用户输入?

c++ - googletest:如何从内部方法跳过测试

c++ - 如何在 C++ 中使用相同的实现正确表达两个派生类函数?