模板参数中优先选择“class”或“typename”
定义 C 模板参数时,在“class”和“typename”之间选择typename' 一直是争论的话题。本文探讨了每个关键字背后的历史和技术考虑因素,并讨论了选择其中一个关键字而不是另一个关键字的潜在原因。
历史上,“class”仅用于指定模板中的类型,以避免引入新关键字。然而,人们担心“class”的重载会引起混乱。
为了解决这种歧义,C 委员会引入了“typename”作为专门用于指定模板类型的新关键字。目的是减少混乱并提供对代码结构的更清晰的理解。
今天,“class”和“typename”仍然是声明模板类型的有效选项。除了 C 17 之前的一种特定情况外,它们通常是可以互换的。
一些开发人员更喜欢“typename”,因为它专门用作类型说明符,可以使代码更加清晰。其他人出于习惯或因为它更符合他们的个人编码风格而更喜欢“类”。最终,两者之间的选择取决于个人喜好。
值得注意的是,在模板模板参数(本身带有模板实参的类型参数)的情况下,C 之前需要“class” 17. 这不是一个偏好问题,而是语言的要求。然而,在 C 17 中,“typename”和“class”在这种情况下也被接受。
以上是您应该使用'class”还是'typename”作为模板参数?的详细内容。更多信息请关注PHP中文网其他相关文章!