C++11新特性汇总
左值右值:
智能指针:
自动类型推导:
auto & decltype,可以在编译期就推导出变量或者表达式的类型
int main() {
auto a = 2;
std::cout<<typeid(a).name()<<std::endl; // 输出: i
return 0;
}
decltype:相对于auto用于推导变量类型,而decltype则用于推导表达式类型,这里只用于编译器分析表达式的类型,表达式实际不会进行运算。
int main(int argc , char * argv[])
{
int i =1;
decltype(i++) b = 3;
std::cout<<i<<std::endl; // 还是 1
std::cout<<typeid(b).name()<<std::endl; // i
return 0;
}
列表初始化:
C++11 引入的一种初始化语法,它提供了一种更加一致和灵活的初始化方式。它可以用于各种场景,包括数组、类对象、结构体、容器等。
class Person{
public:
int age,height;
};
int main(int argc , char * argv[])
{
Person huafeng = {
18,68}; // 这种就是列表初试化
std::cout<<huafeng.age<<" "<<huafeng.heig