为什么编译器将不同大小的std :: array视为不同的类型?
答案 0 :(得分:2)
模板的参数成为实例化模板类型的一部分。 vector< int >
与vector< string >
不同。根据相同的逻辑,array< int, 15 >
与array< int, 30 >
不同。这就是语言的运作方式。
Counterquestion。您如何处理这两种类型operator=()
和array< int, 15 >
之间的作业(array< int, 30 >
)或swap()
?如果它们是同一类型,你应该可以对它们进行这些操作,对吗?又怎样?在不影响std::array<>
作为固定大小容器的整个概念的情况下?