确定模板参数的“class”和“typename”之间的选择
在 C 模板定义中,出现的问题是是否使用 '模板参数的“class”或“typename”。本文旨在全面了解这些选择背后的含义和根本原因。
最初,Stroustrup 引入了关键字“class”来指定模板中的类型,目的是避免引入新的关键字。然而,一些委员会成员对“class”重载可能造成的混乱表示担忧,因为它已经表示类型声明。
为了解决这个问题,委员会引入了“typename”作为专门指定用于指定模板类型。此举旨在减少语法歧义并引导开发人员采用更精确和直观的方法。但是,“class”保留了其以前的功能以确保向后兼容性。
因此,“class”和“typename”仍然是在 C 中定义模板参数的有效选项,充当可互换的关键字。一些开发人员可能更喜欢使用“typename”以避免混淆,而其他开发人员可能会保持传统并坚持使用“class”。最终,“class”和“typename”之间的选择是个人喜好问题,没有重大的技术含义。
值得注意的是,在 C 17 之前,“class”是模板模板参数的要求。然而,随着 C 17 的引入,“typename”也成为了这种情况下的首选选项,与模板类型的更一致的语法保持一致。
以上是模板参数的“class”或“typename”:何时使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!