C++ - 本地名称对类型的重要性

C++ - Significance of local names for types

本文关键字:类型 重要性 C++      更新时间:2023-10-16

我最近读到了如何允许类为类型定义自己的本地名称。一个著名的例子是size_type,几乎所有的STL容器都提供。还提到这样做有助于对类的用户隐藏实现详细信息。我不太确定这是怎么回事。

哪些示例中,为类型定义本地名称可能很有用,以及如何这样做隐藏实现详细信息?

请提供一些示例,说明为类型定义本地名称可能很有用,以及它如何隐藏实现细节。

当您使用模板化算法或容器时,它更有用,这些算法或容器可能假定您的类型具有此类类型别名。因此,即使您修改了size_type的类型 - 即由于某种原因从 size_t 更改为 int ,那么您的类型仍然可以使用这些算法/容器。

否则,例如,

当您实现自己的分配器时,标准要求存在size_type

假设您有一个程序,您可以在其中定义几个类型为 size_type 的变量,并且它在某处定义为int

然后,经过分析和反思,您意识到变量永远不会假设值超过 1 万。因此,用于分配每个变量的 32 位在某种程度上有点矫枉过正。在这种情况下,您可以将size_type重新定义为short类型,而不是 int 。因此,您最终将节省一些内存。

关于示例,您可以检查clock_tchar16_tchar32_twchar_ttrue_typefalse_type