c++ 中的模板,typename 和 class

发布于 2024-11-03 11:32:36 字数 189 浏览 1 评论 0原文

以下两种方式在 c++ 中编写模板有什么区别

template & template

以及我们什么时候更喜欢它们? 如果两者相同,那么如果一个就足够了,为什么我们要同时拥有它们呢?

What is the difference between writing a template in c++ in the below both ways

template<typename T> & template<class T>

and when do we prefer them above each other?
If both are same,then why do we have them both if one is enough?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

来日方长 2024-11-10 11:32:36

完全没有区别。我(大部分)更喜欢第一个,但这是我个人的品味。语言对他们来说没有任何区别。

对于模板参数,关键字 typenameclass 是等效的。 §14.1.2 说:

没有语义差异
在 a 中的类和类型名之间
模板参数。


如果两者相同,那么如果一个就足够了,为什么我们还要两者呢?

Stan Lippman 在他的文章中解释了这一点:

为什么 C++ 支持这两个类和类型参数的类型名称?

No difference at all. I prefer first one (mostly), but that is my personal taste. The language doesn't make any difference between them.

For template parameters, the keywords typename and class are equivalent. §14.1.2 says:

There is no semantic difference
between class and typename in a
template-parameter.


If both are same,then why do we have them both if one is enough?

Stan Lippman explains this in his article:

Why C++ Supports both Class and Typename for Type Parameters?

如若梦似彩虹 2024-11-10 11:32:36

这些关键词的存在是有历史原因的。他们之间没有区别。读这个:
http://blogs.msdn.com/b/slippman /archive/2004/08/11/212768.aspx

These keywords are there because of historical reason. There's no difference between them. Read this:
http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文