gpt4 book ai didi

c++ - 具有更多模板参数的部分特化

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:43 25 4
gpt4 key购买 nike

是否允许部分特化具有比主模板更多的模板参数?我的理解是部分特化必须具有与主模板相同或更少数量的模板参数。

我正在阅读 C++ 模板(第 2 版),其中在第 5.4 节(第 72 页)中提到

template <typename T, std::size_t SZ>
struct MyClass<T[SZ]>{
static void print(){}
};

template <typename T, std::size_t SZ>
struct MyClass<T (&)[SZ]>{
static void print(){}
};

都是主模板的偏特化

template <typename T>
struct MyClass;

随附的代码工作正常。但这是正确的吗?部分特化是否可以比主模板具有更多的模板参数?

编辑 - 此问题已被标记为与另一个问题重复,但那里的答案与此处的问题无关。这里的问题是关于模板参数的数量和标准的评论和快速重读为我澄清了答案。

最佳答案

是的,部分特化确实可以比主模板有更多的模板参数。这种用法的典型示例是 std::function:

template <class T>
struct function;

template <class R, class... A>
struct function<R (A...)>
{
// std::function as we know it
};

关于c++ - 具有更多模板参数的部分特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53762634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com