词汇表

参考文档使用特定于此库的几个术语。 此外,功能的简化实现有时在伪代码中提供,实际实现有时稍微难以理解。 本节定义在引用和用于描述一些函数的伪代码中使用的术语。

forwarded(x)

意味着对象被最佳地转发。 这意味着如果x是一个参数,它是std::forward,如果它是一个捕获的变量,它从每当包围lambda是一个右值时移动。

还要注意,当x可以移出时,语句return forwarded(x); 在带有decltype(auto)的函数中,并不意味着将返回对x的右值引用,这将创建一个悬挂引用。 相反,它意味着x由值返回,值由std::forwarded x构造。

perfect-capture

这在lambdas中用于表示捕获的变量使用完美转发进行初始化,就好像使用了[x(forwarded(x))...](){}

tag-dispatched

这意味着记录的函数使用标签分派,因此确切的实现取决于与函数相关联的概念的模型。

implementation-defined

这表示实体(通常是类型)的确切实现不应被用户依赖。 特别是,这意味着,不能假设任何超出文档中明确书面的内容。 通常,由实现定义的实体满足的概念将被记录,因为否则可能对它不起作用。 具体来说,假设太多的实现定义的实体可能不会杀了你,但是当你更新到较新版本的Hana时,它很可能会破坏你的代码。