C++ 为什么boost::multi#u阵列';s ConstMultiArrayConcept是否有NumDims模板参数?
我编写了一个C++ 为什么boost::multi#u阵列';s ConstMultiArrayConcept是否有NumDims模板参数?,c++,boost,boost-multi-array,c++-concepts,C++,Boost,Boost Multi Array,C++ Concepts,我编写了一个操作符概念模板类声明: template <typename Array, std::size_t NumDims> struct ConstMultiArrayConcept { ... }; multi_-array\u view&operator=()和sub_-array&operator=()中采用其他ConstMultiArray类型的相同代码 看起来NumDims不是传递的数组类型的维度号array,而是外部数组类型的维度号,用于检查与给定其他数组类型的
操作符概念模板类声明:
template <typename Array, std::size_t NumDims> struct ConstMultiArrayConcept
{
...
};
multi_-array\u view&operator=()
和sub_-array&operator=()
中采用其他ConstMultiArray
类型的相同代码
看起来NumDims
不是传递的数组类型的维度号array
,而是外部数组类型的维度号,用于检查与给定其他数组类型的分配兼容性。因此,它不能从数组模板参数推断
template <typename Array, std::size_t NumDims> struct ConstMultiArrayConcept
{
...
};
template <typename T, std::size_t NumDims>
class multi_array_ref {
...
// Assignment from other ConstMultiArray types.
template <typename ConstMultiArray>
multi_array_ref& operator=(const ConstMultiArray& other)
{
function_requires<
detail::multi_array::
ConstMultiArrayConcept<ConstMultiArray,NumDims> >();
...