让我们考虑一下非常简化的例子
#include <array>
template<typename T, F>
class GenericColor {
protected:
std::array<T, F> components;
}
class RGB : public GenericColor<int, 3> { // three components, red, green...
}
class CMYK : public GenericColor<int, 4> { // four components, cyan, magenta....
}
我的问题是如何使第二个参数指向std :: array size,只是为了让这个例子工作。
答案 0 :(得分:4)
std::array
的声明是*
template<class T, std::size_t N> struct array
告诉您如何编写代码:
template<typename T, std::size_t F>
class GenericColor {
protected:
std::array<T, F> components;
}
*这里有一些愚蠢的细节,它不一定是那个,但是等等等等等等。