【发布时间】:2015-09-13 07:29:56
【问题描述】:
我前段时间了解到,您可以创建零参数的模板。虽然无法直接创建它们,但您可以使用成员模板
template<typename ...T>
struct Maker {
template<T...>
struct HasNParams { };
};
Maker<>::HasNParams<> hnp;
我想知道这是否是为了形成良好的格式以及您可以对这些野兽做什么。您可以将它们作为模板参数传递,并创建明确的特化(我猜唯一的场景是针对空的情况)?
【问题讨论】:
-
问题只是“你能用
SomeClassTemplate<>做什么?”这让我觉得很宽泛。 -
通用?你可以用空的
vector做什么? -
@Barry 你无法在 C++11 之前创建它们,而且我还没有看到应用程序,也没有关于它们的文章。这让我想知道它们是否是您不应该在代码中使用的意外?或者有什么用途,它们是什么?
-
@Barry 如果您有很多用例并且可以演示它们,请继续,因为这表明该功能不是“意外”,至少不会很快消失。我会在你的答案上打分=)
-
我并不是说空模板是 C++11 的明确设计目标,而是说它们作为新的可变参数设计的一部分出现了,而且要明确禁止这些,没有明显的好处。