C++11标准下的auto和decltype

自动类型推导auto
在C++11之前,auto关键字用来指定存储类型。在新标准中,它的功能变为自动类型推断。auto现在成了一个类型的占位符,通知编译器去根据初始化代码推断所声明变量的真实类型。
各种作用域内声明变量都可以用到它。
通过auto的自动类型推导,可以大大简化我们的编程工作。

auto运用示例

auto a; // 错误,auto是通过初始化表达式进行类型推导,如果没有初始化表达式,就无法确定a的类型
auto int a = 10;  // 错误,auto临时变量的语义在C++ 11中已不存在
auto i = 1;
auto d = 1.0;
auto str = "Hello World";
auto ch = 'A';
auto c = i * d;

auto func = less<int>();
vector<int> iv;
auto ite = iv.begin();
auto p = new foo() // 对自定义类型进行类型推导

decltype
decltype实际上有点像auto的反函数,auto可以让你声明一个变量,而decltype则可以从一个变量或表达式中得到类型

auto运用示例

int x = 3;
decltype(x) y = x;

你可能感兴趣的:(C++,c++)