要包含哪些头文件,才能访问诸如ContiguousContainer这样的标准概念?
我想创建一个带有参数变量的函数,使其满足C++标准中的 ContiguousContainer 要求。我的函数应该能够作用于实现该概念的任意类型,例如 std::vector、std::array,并且也能适用于那些非传统、非标准但合适的类型(第三方连续容器)。
然而,我无法访问标识符 ContiguousContainer。我也找不到任何库,在被包含进来时,能够向我的编译器说明 ContiguousContainer 一词的含义。
你会怎么做?
或者,我是否应该自己实现概念 ContiguousContainer,并以我自己撰写的标准要求来断言我的函数参数变量(以及如果对函数进行模板化的话,它的类型模板参数)具备 size() 方法、具备 begin() 方法、定义必要的迭代器类型等,等等(大量的要求)。
解决方案
我找不到任何库,在被包含进来时,能够告诉我的编译器
ContiguousContainer一词的含义。
标准在 container.reqmts 中确实定义了术语 "contiguous container"(连续容器):
一个 连续容器 是一个容器,其成员类型
iterator和const_iterator满足Cpp17RandomAccessIterator要求([random.access.iterators])并且符合contiguous_iterator([iterator.concept.contiguous])。
你会怎么做?
一种选择是使用 std::ranges::contiguous_range。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。