【发布时间】:2017-02-13 09:01:12
【问题描述】:
我发现a strange code 关于 SO 中的模板。这就像声明模板签名两次。
template <typename Tf, Tf F>
class Collection;
template <typename K, typename ... I, HashFunction<K, I...> F> //<-- #B1
class Collection<HashFunction<K, I...>, F> //<-- <> again! #B2
{ /*.......*/ }
模板重复声明(#B1&#B2)是什么意思?
哪个 C++ 规范允许 <> 两次?
这叫什么? ...我想深入了解它。
是不是一种别名?
一般来说,它有什么用处?
我在cppreference 中没有找到这样的签名。
它是最前沿的 C++ 语法吗?
【问题讨论】:
-
它是 class-template 的 partial-specialization
-
@StoryTeller 哇!谢谢。
-
我试图找到一个副本,但运气不佳。如果您准备在回答自己的问题时记录您学到的知识,您可以自己发布答案,这将使整个网站受益。
-
@StoryTeller 如果您只是发布链接(实际上只是将您的评论复制到答案),我会接受。我认为人们可以很容易地从您的链接中挖掘更多关于它的信息。 XD
标签: c++ templates language-lawyer