一些最常见的concept可以在concept库里找到,下面列出我目前所知道的一些concept。
类型 | 方法 | 作用 |
核心语言概念 | same_as<T,U> | 指定一个类型T与另一类型U相同 |
核心语言概念 | convertible_to<T,U> | 指定一个类型T能隐式转换成另一类型U |
核心语言概念 | integral<T> | 指定类型T为整型类型 |
核心语言概念 | signed_integral<T> | 指定类型T为有符号的整型类型 |
核心语言概念 | unsigned_integral<T> | 指定类型T为无符号的整型类型 |
核心语言概念 | floating_point<T> | 指定类型为浮点类型 |
核心语言概念 | assignable_from<T,U> | 指定一个类型T能从另一类型U赋值 |
核心语言概念 | swappable<T> swappable_with<T,U> | 指定一个类型T能进行交换,或两个类型T,U能彼此交换 |
核心语言概念 | destructible<T> | 指定能销毁该类型T的对象,也就是能够调用类型T的析构函数。 |
核心语言概念 | default_constructible<T> | 指定能默认构造一个类型T的对象,也就是T有默认构造函数 |
核心语言概念 | move_constructible<T> | 指定能移动构造一个类型T的对象,也就是有移动构造函数 |
核心语言概念 | copy_constructible<T> | 指定能复制构造和移动构造一个类型T的对象,也就是同时有拷贝构造和移动构造函数 |
比较概念 | equality_comparable<T> equality_comparable_with<T,U> | 指定类型T能够使用==运算符,或者T与U能够使用运算符== |
比较概念 | boolean<T> | 指定类型T能用于布尔语境 |
对象概念 | movable<T> | 指定能移动及交换一个类型T的对象 |
对象概念 | copyable<T> equality_comparable_with<T,U> | 指定能复制、移动及交换一个类型的对象 |
对象概念 | semiregular<T> | 指定能拷贝赋值、拷贝构造,移动、交换及默认构造一个类型的对象 |
对象概念 | regular<T> | 指定能拷贝赋值、拷贝构造,移动、交换及默认构造一个类型的对象,且还能使用==operator |
可调用概念 | invocable<T> | 指定能以给定的一组实参类型调用的可调用类型,类型T有仿函数 |
Comments NOTHING