Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 C++/C++11 中,我们如何为 std::array 声明别名?
我的意思是这样的:
template<size_t N> using Array = array<int, N>; int get(Array A, int index) { return A[index]; }
但这会导致编译错误:Array is not a type。 正确的方法是什么?非常感谢。
由于您的别名是模板,因此该get函数也需要是模板:
get
template <size_t N> int get(Array<N> const & a, int index) { return a[index]; }
当然,您也可以更一般地对原始array模板执行此操作:
array
template <typename T, size_t N> T & get(std::array<T, N> & a, int n) { return a[n]; }