gpt4 book ai didi

c++ - 如何专门化一个类的模板模板参数?

转载 作者:行者123 更新时间:2023-11-30 03:43:32 30 4
gpt4 key购买 nike

我有一个模板类

template <class T>
struct TypeText {
static const char *text;
};

以及“文本”成员的一些特化:

template <> const char* TypeText<int>::text = "INT";
template <> const char* TypeText<long>::text = "LONG";

如何为 std::vector<A,B> 实现特化没有关于 A 的先验知识和 B ?是否有可能不同 std::vector<A,B>来自 SomeOtherClass<A,B>

以下不起作用:

template <>
template <class T, class A>
const char* TypeText< std::vector<T,A> >::text = "vector";

最佳答案

您可以提供 partial template specialization对于 std::vector:

template <class T>
struct TypeText<std::vector<T>> {
static const char *text;
};
template <class T>
const char* TypeText<std::vector<T>>::text = "vector";

然后使用它,例如:

...TypeText<std::vector<int>>::text...    // "vector"
...TypeText<std::vector<long>>::text... // "vector"

LIVE

关于c++ - 如何专门化一个类的模板模板参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016504/

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