C ++新语法,请解释

时间:2015-09-06 12:03:29

标签: c++

语法是什么以及它做了什么?它的c ++标准是什么?

shared_ptr<int> p{new int{10}};

我对第一组花括号{}感到困惑。我想,第二组是创建一个10个元素的临时对象?

1 个答案:

答案 0 :(得分:5)

  

语法是什么,它做了什么?

此语法称为统一初始化列表初始化。它做了许多不同的事情explained here。在这种特殊情况下,构造使用指向整数的普通指针初始化共享指针,并将新分配的整数设置为十(demo)。

效果与下面的代码段相同:

int *tmp = new int;
*tmp = 10;
shared_ptr p(tmp);
  

它的c ++标准是什么?

此语法是在C ++ 11中引入的。