从我记忆中来看,C ++有Mergable,Container,Comparable,Sortable,Arithmetic等概念。我在这里和那里看过它们但我从未见过列表。我在哪里可以找到标准C ++概念列表?
什么是概念
概念是一个术语,指的是必须由编译器强制执行的类型需求的形式化。 This draft(N3580)包含所有细节。
什么是类型要求
类型需求是一组需求,甚至在C ++ 03标准中定义,必须由程序员强制执行,以便对所述类型应用某些操作。标准从不称它们为概念。
类型要求清单
我认为你的意思是类型要求:
- 您提到
Container
- 您提到
Comparable
- 你记住 C ++的事实有"概念"
所以,这里是类型要求列表,您还可以在其中找到Container
和Compare
(由cppreference组织):
基本
- 可缺省
- MoveConstructible
- 复制构造
- MoveAssignable
- CopyAssignable
- 可破坏
布局
- TriviallyCopyable
- TrivialType
- StandardLayoutType
- PODType
库宽
- EqualityComparable的
- 小于关系
- 可交换
- ValueSwappable
- NullablePointer
- 哈希
- 分配器
- 函数对象
- 可赎回
- 谓词
- BinaryPredicate
- 比较
容器
- 容器
- ReversibleContainer
- AllocatorAwareContainer
- SequenceContainer
- AssociativeContainer
- UnorderedAssociativeContainer
容器元素
- CopyInsertable
- MoveInsertable
- EmplaceConstructible
迭代
- 迭代
- InputIterator的
- 输出迭代
- ForwardIterator
- BidirectionalIterator
- RandomAccessIterator的
流I / O功能
- UnformattedInputFunction
- FormattedInputFunction
- UnformattedOutputFunction
- FormattedOutputFunction
随机数发生器
- SeedSequence
- UniformRandomNumberGenerator
- RandomNumberEngine
- RandomNumberEngineAdaptor
- RandomNumberDistribution
并发
- BasicLockable
- 可锁定
- TimedLockable
- 互斥
- TimedMutex
- SharedTimedMutex
其他
- UnaryTypeTrait
- BinaryTypeTrait
- TransformationTrait
- 时钟
- TrivialClock
- CharTraits
- pos_type
- off_type
- BitmaskType
- LiteralType
在哪里可以找到标准C ++概念列表?
显然,没有,它还没有达到标准;另请参阅Is the Committee Draft of Standard C++14 public?尽管如此,相关文件似乎是Concepts Lite: Constraining Templates with Predicates (N3580)和A Concept Design for the STL (N3351)。该列表截至2014年6月15日,取自N3580:
类型特征
- Equality_comparable
- Totally_ordered
- 可移动
- 能够复制
- 半规则
- 正
- 功能
- Regular_function
- 谓词
- 关系
迭代器概念
- 的iterator_category
- VALUE_TYPE
- Difference_type
- 可读
- 可写
- 可交换
- 可变的
- 可推进
- 可递增
- Input_iterator
- Output_iterator
- Forward_iterator
- Bidirectional_iterator
- Random_access_itertor
算法约束
- Indirectly_movable
- Indirectly_copyable
- Indirectly_swappable
- Indirectly_equal
- Indirectly_ordered
- Indirectly_comparable
- 可排序
- 可合并
简而言之," 概念是一组需求,包括有效表达式,关联类型,不变量和复杂性保证。满足要求的类型被称为建模这个概念。概念可以扩展另一个概念的要求,称为细化。"
来源:http://www.boost.org/community/generic_programming.html#concept
有几个可用的概念列表:
有关进一步说明,请参阅"概念和建模"以及" Refinement"在下面的:
https://www.sgi.com/tech/stl/stl_introduction.html
另见:
您可能也有兴趣: