为什么编译器将不同大小的std :: array视为不同类型?

时间:2018-05-18 06:36:18

标签: c++11

为什么编译器将不同大小的std :: array视为不同的类型?

1 个答案:

答案 0 :(得分:2)

模板的参数成为实例化模板类型的一部分。 vector< int >vector< string >不同。根据相同的逻辑,array< int, 15 >array< int, 30 >不同。这就是语言的运作方式。

Counterquestion。您如何处理这两种类型operator=()array< int, 15 >之间的作业(array< int, 30 >)或swap()?如果它们是同一类型,你应该可以对它们进行这些操作,对吗?又怎样?在不影响std::array<>作为固定大小容器的整个概念的情况下?