unique_ptr之外的数组模板语法

Array template syntax outside of unique_ptr

本文关键字:数组 语法 ptr unique      更新时间:2023-10-16
可以使用语法

std::unique_ptr<T[]>来描述unique_ptr的(模板化)类型,其底层原始指针指向T数组。我想知道语法T[]的一般含义。它是否在智能指针之外使用?是否有可能例如 vector<T[]>有用吗?

它的意思是"未知T边界数组"。您可能会在函数签名中看到这样的类型:

void f(int arr[]);

在其他地方定义的数组的声明中:

extern int arr[];

显然,作为像 unique_ptr 这样的模板的类型参数(或者,在未来的某个时候,shared_ptr也是如此)。这是一个不完整的类型,因此它的用处可能相当有限。

vector<T[]>不太可能有用。如果你不知道数组中有多少个元素,那么你怎么能有一个容器呢?