在C++ 11(或C++)中,是否可以傳遞未完全指定的模板類型。具體而言,我想傳遞一個類型不具有其所有的模板說明符尚未定義:傳遞帶有自由模板參數的模板類型名稱
template <std::size_t N, typename ARRAYTYPE>
struct A {
ARRAYTYPE<int, N> int_array;
};
int main() {
A<10, std::array> my_a;
return 0;
}
我知道,只是重新定義ARRAYTYPE = std::array<int, 10>
會工作,但不會讓我在A
利用不同大小的ARRAYTYPE
任何地方:
template <std::size_t N, typename ARRAYTYPE>
struct A {
ARRAYTYPE<int, N> int_array;
ARRAYTYPE<int, 1> tiny_int_array;
};
這可能嗎?
+1精彩!這節省了很多麻煩。 – user