语法是什么以及它做了什么?它的c ++标准是什么?
shared_ptr<int> p{new int{10}};
我对第一组花括号{}
感到困惑。我想,第二组是创建一个10个元素的临时对象?
答案 0 :(得分:5)
语法是什么,它做了什么?
此语法称为统一初始化或列表初始化。它做了许多不同的事情explained here。在这种特殊情况下,构造使用指向整数的普通指针初始化共享指针,并将新分配的整数设置为十(demo)。
效果与下面的代码段相同:
int *tmp = new int;
*tmp = 10;
shared_ptr p(tmp);
它的c ++标准是什么?
此语法是在C ++ 11中引入的。