在C++14(所以没有约束,
require
或折叠表达式,但有SFINAE)中是否可以有类模板的部分模板专业化
template <typename ...T>
class Generic {
using Container = std::tuple<T...>;
};
对于每个模板参数都是同一类型的情况? 我需要这个,因为通用版本将使用
std::tuple
容器,而专业化将使用 std::array
。
#include <tuple>
#include <vector>
template <typename ...T>
class Generic {
public:
using Container = std::tuple<T...>;
};
template <typename T>
class Generic<T> {
public:
using Container = std::vector<T>;
};
int main() {
Generic<int>::Container x;
Generic<int,long>::Container y;
}